我在接受用户文本的表单中有一个输入字段。有问题的用户将始终从自动生成的电子邮件中复制/粘贴文本,其中包括文本周围的“<”和“>”。这将引发错误,因为文本将被识别为 HTML。在不禁用验证(通过 ValidateInput(false))的情况下,如何对这个 .Input 字段进行编码,我的用户可以使用“<”和“>”符号复制/粘贴文本?
<%=Html.Input(sample => sample.SampleInput)%>
我在接受用户文本的表单中有一个输入字段。有问题的用户将始终从自动生成的电子邮件中复制/粘贴文本,其中包括文本周围的“<”和“>”。这将引发错误,因为文本将被识别为 HTML。在不禁用验证(通过 ValidateInput(false))的情况下,如何对这个 .Input 字段进行编码,我的用户可以使用“<”和“>”符号复制/粘贴文本?
<%=Html.Input(sample => sample.SampleInput)%>
使用[AllowHtml]
模型属性上的属性来允许 HTML 代码通过验证。
请注意,这是一个可能的安全问题,因为提交的输入可能包含脚本代码。这就是默认情况下禁止它的原因。因此,请注意您收到的输入以确保其安全。
http://msdn.microsoft.com/en-us/library/system.web.mvc.allowhtmlattribute(v=vs.98).aspx
<httpruntime requestvalidationmode="4.5" />
或者你可以[AllowHtml]
在你的模型对象上
public class User{
[AllowHtml]
public string email {get; set;}
}
或者,您可以根据需要关闭单个操作的验证。
[ValidateInput(false)]
public ActionMethod Edit(User user)
{
// Do your own checking of value since `user` could contain XSS stuff!
return View();
}