0

我在接受用户文本的表单中有一个输入字段。有问题的用户将始终从自动生成的电子邮件中复制/粘贴文本,其中包括文本周围的“<”和“>”。这将引发错误,因为文本将被识别为 HTML。在不禁用验证(通过 ValidateInput(false))的情况下,如何对这个 .Input 字段进行编码,我的用户可以使用“<”和“>”符号复制/粘贴文本?

<%=Html.Input(sample => sample.SampleInput)%>
4

2 回答 2

2

使用[AllowHtml]模型属性上的属性来允许 HTML 代码通过验证。

请注意,这是一个可能的安全问题,因为提交的输入可能包含脚本代码。这就是默认情况下禁止它的原因。因此,请注意您收到的输入以确保其安全。

http://msdn.microsoft.com/en-us/library/system.web.mvc.allowhtmlattribute(v=vs.98).aspx

于 2013-05-31T16:48:06.257 回答
0

您可以在 ASP.Net 4.5 中使用新请求验证功能

 <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();
}
于 2013-05-31T16:56:43.503 回答