Asp.net mvc 编码字符串
我将控制器操作中的ValidateInputAttribute设置为false。在我看来,我有一个文本框:Asp.net mvc 编码字符串,asp.net-mvc,c#-4.0,Asp.net Mvc,C# 4.0,我将控制器操作中的ValidateInputAttribute设置为false。在我看来,我有一个文本框: <p> <%= Html.TextBoxFor(m => m.Name.LastName, new { maxlength = "100" })%> <%= Html.ValidationMessageFor(m => m.Name.LastName) %> <%= Html.Hidden("hiddenLas
<p>
<%= Html.TextBoxFor(m => m.Name.LastName, new { maxlength = "100" })%>
<%= Html.ValidationMessageFor(m => m.Name.LastName) %>
<%= Html.Hidden("hiddenLastName", Model.Name.LastName) %>
</p>
m、 Name.LastName,新的{maxlength=“100”})%>
m、 Name.LastName)%%>
现在我可以通过文本框保存所有内容,但在显示数据时,我会看到奇怪的字符。因此,当我保存alert(“Boo!”)
并再次打开站点查看结果时,我看到:alert(“Boo!”)
我怎样才能解决这个问题
注意:我没有在代码的其他地方对输入进行编码。它是编码字符串。如果脚本标记可以攻击您的站点,那么转换为Html编码字符串的字符串是安全的。但是,如果您想用tag元素显示未编码的字符串,请使用HtmlString
HtmlString htmlString = new HtmlString("rawString");
String encodedString = htmlString.ToHtmlString();
String not_encodedString = htmlString.ToString();
以下是msdn链接:
如果你想看到
你保存了警报(“Boo!”)
然后你看到警报(“Boo!”)
,有什么问题吗?对不起,我不知道怎么把它放在这里,我看到了像<,&gOr这样的奇怪字符
model.Input = HttpUtility.HtmlEncode(model.Input);
@HttpUtility.HtmlDecode(model.Input)
[Required]
[AllowHtml]
public string Input {get; set;}