Html编码TextboxFor输入

时间:2015-06-30 16:54:35

标签: html asp.net-mvc-4 razor model-view-controller html-encode

因为我刚刚开始学习网络相关的编程,所以请暂时忘掉我的无知。所以,我有一个用MVC编写的web项目,它有一个登录窗口,其中Username文本框绑定到一个属性:

@Html.TextBoxFor(model => model.UserName, new {@placeholder = "Username"})

据我了解,Razor会自动对html进行编码,以帮助防止跨脚本攻击。但是,当我使用javascript测试用户名时,我从MVC获得了一个例外:

  

从中检测到一个潜在危险的Request.Form值   客户端(UserName =“... hp?name_1 =代码

这让我觉得输入不是html编码的。我的想法是用html编码/解码解决这个问题,但看起来我没有把这个想法弄好。有人可以解释一下吗?

注意: SO related posts中的一个提供了一个不安全的解决方案,但我不能选择简单地允许html。

1 个答案:

答案 0 :(得分:0)

它不是HTML编码,这是正确的。您将不得不在回复表单的操作中执行HTML编码。

此外,您还需要添加[ValidateInput(false)]属性,而不仅仅是您的操作。