当我在表单中输入 HTML 字符时,例如 <br />
,ASP.NET 抛出内部 500 异常,如所述 here .
A potentially dangerous Request.Form value was detected from the client (Name="<br />").
好的,它可以保护我免受可能被用于恶意目的的未编码字符的影响。
问题是,在我漫长的搜索中没有找到答案,就是该怎么办。 IE。当用户输入错误字符时,我的应用程序不应该仅仅抛出一般的内部服务器错误(如果他们绘制诸如 <-- 之类的箭头怎么办)。
更好的方法是简单地返回带有 ModelState
的页面。错误提示“请不要使用 HTML 字符”或其他有意义的内容。
但是如何实现这一目标呢?该错误在到达我的代码之前就被抛出了。另外,我不想只是通过 validateRequest="false"
将其关闭然后必须验证应用程序中每个表单的 HTML 字符并返回错误。
有没有办法让这种类型的验证保持启用状态,但只是以不同的方式处理它?</strong>
澄清代码:
Model
Public Class SomeModel
Public Property SomeField As String
End Class
Controller
<HttpPost>
Function SomeController(ByVal model As SomeModel)
' model.SomeField contains some HTML characters :O
' but it doesn't matter, since an internal error has occured :(
End Function
最佳答案
您是否尝试过添加 AllowHtml属性到你的 View 模型的属性?
关于asp.net - 当我在表单中提交 HTML 字符时,为什么 ASP.NET 会抛出内部服务器 (500) 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15353512/