Comment puis-je autoriser les balises HTML pour être soumis dans une zone de texte dans asp.net?
Tout d'abord, je tiens à faire savoir à tous que je suis en utilisant un aspx moteur n'est pas un moteur de Rasoir.
J'ai une table dans un formulaire. Un de mes textbox contient des balises html comme
</br>Phone: </br> 814-888-9999 </br> Email: </br> [email protected].
Quand je vais à construire ce qu'il me donne une erreur qui dit que
Potentiellement dangereuse Demande.Formulaire de valeur a été détectée par le client (QuestionAnswer="...ics Phone:<br/>814-888-9999<br...")
.
J'ai essayé la demande de validation d'="false" mais cela n'a pas fonctionné.
Je suis désolé je n'ai pas à ajouter mon code html pour vous de regarder si loin. Je suis en tirant quelques question jusqu'où je peux le modifier, si besoin est.
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
EditFreqQuestionsUser
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript">
$(document).ready(function () {
$("#freqQuestionsUserUpdateButton").click(function () {
$("#updateFreqQuestionsUser").submit();
});
});
</script>
<h2>Edit Freq Questions User </h2>
<%Administrator.AdminProductionServices.FreqQuestionsUser freqQuestionsUser = ViewBag.freqQuestionsUser != null ? ViewBag.freqQuestionsUser : new Administrator.AdminProductionServices.FreqQuestionsUser(); %>
<%List<string> UserRoleList = Session["UserRoles"] != null ? (List<string>)Session["UserRoles"] : new List<string>(); %>
<form id="updateFreqQuestionsUser" action="<%=Url.Action("SaveFreqQuestionsUser","Prod")%>" method="post" onsubmit+>
<table>
<tr>
<td colspan="3" class="tableHeader">Freq Questions User Details <input type ="hidden" value="<%=freqQuestionsUser.freqQuestionsUserId%>" name="freqQuestionsUserId"/> </td>
</tr>
<tr>
<td colspan="2" class="label">Question Description:</td>
<td class="content">
<input type="text" maxlength="2000" name="QuestionDescription" value=" <%=freqQuestionsUser.questionDescription%>" />
</td>
</tr>
<tr>
<td colspan="2" class="label">QuestionAnswer:</td>
<td class="content">
<input type="text" maxlength="2000" name="QuestionAnswer" value="<%=freqQuestionsUser.questionAnswer%>" />
</td>
</tr>
<tr>
<td colspan="3" class="tableFooter">
<br />
<a id="freqQuestionsUserUpdateButton" href="#" class="regularButton">Save</a>
<a href="javascript:history.back()" class="regularButton">Cancel</a>
</td>
</tr>
</table>
</form>
</asp:Content>
Vous devez vous connecter pour publier un commentaire.
avant que la page soit soumis vous avez besoin de codage html la zone de texte valeur, avec fenêtre.échapper(...)
Si vous avez besoin de l'onu, échappé de texte sur le côté serveur, puis utiliser
HttpUtility.UrlDecode(...)
méthode.très rapide de l'échantillon:
Faire ces changements à votre code:
Décorer votre contrôleur de l'action avec le
[ValidateInput]
attribut:[AllowHtml]
attribut. Quel est le point de l'utilisation de javascript pour échapper à la saisie de l'utilisateur avant de les soumettre?Client JavaScript:
Serveur:
À l'aide de html dans la zone de texte n'est pas une bonne pratique, peut-être utiliser des retours à la ligne ((
Environment.NewLine
) ou \r\n au lieu debr
?.NETTE de Référence
Exemple (en C#) :
Je vous recommande d'utiliser le AjaxControlToolkit de l'Éditeur HTML. Je suis en œuvre maintenant. Si vous êtes à la zone de texte multi-ligne et assez grande pour accueillir HTML, pourquoi ne pas simplement augmenter jusqu'à un éditeur HTML. Votre utilisateur sera plus heureux aussi.
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/HTMLEditor/HTMLEditor.aspx