Environnement: NET 3.5, C#, sharepoint 2010le codage des caractères avec asp.net textbox dynamique
fonctionnalité existante: J'ai un contrôle utilisateur avec une zone de texte de recherche et le bouton de recherche. Lorsque le bouton Soumettre est atteint, avec les résultats de recherche, une chaîne de requête avec un mot-clé de recherche est créée. Lors de la publication, la zone de texte est à nouveau remplie avec le mot clé de recherche de la chaîne de requête. Cela fonctionne bien.
Problème: Vous devez corriger les scripts latéraux. a fait un html.encode et encore un filtre pour échapper une citation unique avec & amp # 39; pour la valeur de la zone de texte. mais la zone de texte affiche la valeur comme c'est "' searchingstring '".
Je dois montrer à l'utilisateur seulement "Searchstring", mais la valeur dans le code source doit être & amp # 39; searchingstring & amp # 39; pour empêcher la vulnérabilité de script de côté croisé.
(Note:.. Au-dessus du texte "& Ampère" est en fait "&" pas & amp # 39 Depuis éditeur stackoverflow il se transforme en guillemets simples, je l'ai remplacé par & Ampères pour la lecture)
Si j'ai essayé construire la zone de texte dynamiquement sur pageinit en utilisant stringbuilder, je reçois ce dont j'avais besoin comme je l'ai mentionné ci-dessus. par exemple:
StringBuilder sb = new StringBuilder();
if (Request.QueryString["str"] != null)
{
string strName = Request.QueryString["str"].ToString();
str_value = htmlCheckReturnData(strName); //encoded string
sb.Append("<INPUT type='TEXT' runat = 'server' id = 'mystring' value = '" + str_value + "' />");
// Response.Write(sb.ToString());
}
else
{
sb.Append("<INPUT type='TEXT' runat = 'server' id = 'mystring' value = '' />");
}
ltlSearch.Text = sb.ToString();
Mais je dois vérifier la valeur de la zone de texte « mystring » à l'intérieur pageload comme,
if (!IsPostBack && !Page.IsAsync)
{
if (!string.IsNullOrEmpty(mystring.Value)) //NOT WORKING HOW TO GET the textbox value
{
//do something
}
}
Note: Si je crée le contrôle de zone de texte sur Page_Init sans une méthode d'écriture stringbuilder , le caractère avec codage s'affiche dans la zone de texte.
Toute aide?
Merci Venkat
Comme je l'ai mentionné dans mon post, la construction d'un contrôle dynamique de la façon dont vous suggérez na pas résolu le problème je l'ai mentionné. – user2459457
@ user2459457 Vous n'avez pas mentionné la méthode que vous utilisiez précédemment, vous venez de dire non avec un stringbuilder. –
Mon mauvais. Désolé, je n'ai pas mentionné cela clairement. Merci pour votre réponse, il n'a pas résolu le problème sur l'affichage de codage de caractères sur la zone de texte. – user2459457