7

我正在运行 ASP.Net MVC 应用程序并面临以下错误。由于我是 ASP.Net 的新手,有人可以帮助我了解它的含义以及如何解决它吗?

我尝试用谷歌搜索来理解它,但发现相同错误的不同答案让我更加困惑。

Global.asax 中捕获的异常:System.Web.HttpRequestValidationException (0x80004005):从客户端检测到潜在危险的 Request.Form 值 (ctl00$MainContent$WarningCtl1$TXTWarningText="

这是警告..."). 在 System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) 在 System.Web.HttpRequest 的 System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection)。 get_Form() 在 System.Web.HttpRequest.get_HasForm() 在 System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) 在 System.Web.UI.Page.DeterminePostBackMode() 在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint) 在 System.Web.UI.Page.ProcessRequest(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint) 在 System.Web.UI.Page.ProcessRequest() 在 System.Web.UI.Page。ProcessRequest(HttpContext context) at ASP.app_config_appttypes_groupappttypes_aspx.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

请建议。

4

3 回答 3

8

您需要添加ValidateInputAttribute到您的控制器(将其应用于该控制器的所有操作方法,所以要小心):

[ValidateInput (false)]
public class MyController : Controller { ... }

或您的操作方法:

public class MyOtherController : Controller
{
    [ValidateInput (false)]
    public ActionResult MyActionMethod (MyObjectThatTakesInHtml myObject)
    { ... }
}

编辑

正如@dotjoe 指出的那样,我忘了提及,您还可以访问模型中某个属性的AllowHtmlAttribute(在 中找到System.Web.Mvc)。

public class MyObjectThatTakesInHtml
{
    [AllowHtml]
    public string MyHtmlProperty { get; set; }
}
于 2012-05-31T18:30:03.687 回答
4
  • 在客户端级别编码并在服务器级别对其进行解码

脚步

1.使用jquery submit 方法发布表单。

在 jquery 按钮中单击要发布到服务器的事件方法编码字段。例子

$("#field").val(encodeURIComponent($("#field").val())) $("#formid").submit();

在控制器级别访问所有表单 id 值使用

HttpUtility.UrlDecode(Request["fieldid"])

确保控制器方法没有参数。

于 2014-07-01T10:05:39.047 回答
-1

MVC

为动作添加属性 [ValidateInput(false)]

并确认 system.web 中的 web.config 设置

于 2014-02-28T16:05:23.957 回答