asp.net - 当我在表单中提交 HTML 字符时,为什么 ASP.NET 会抛出内部服务器 (500) 错误?

标签 asp.net asp.net-mvc validation vb.net character-encoding

当我在表单中输入 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/

相关文章:

asp.net - 验证 Web 服务

asp.net-mvc - ASP.NET WEB API 将 DateTime 作为 URI 的一部分传递给 Controller

javascript - 使用 Javascript 在 EditorFor MVC 中获得焦点

c# - 如何对接收 FormCollection 以上传文件的方法进行单元测试?

javascript - 客户端 HTML 表单验证

javascript - 缺少 ASP.NET 验证器

mysql - SQL 重复键更新 - 在非主键上?

asp.net - 无法在 asp.net Repeater 控件中找到控件

ASP.NET 应用程序转到 500.21 ...直到 IIS 重置 + 清除临时 ASP.NET 缓存

validation - 如何将一个错误提供程序应用于所有空文本框 VB.net 2010