我正在运行ASP.Net MVC应用程序并面临以下错误。由于我是ASP.Net的新手,有人可以帮助我,告诉我这是什么意思,我该如何解决?
我试着谷歌搜索了解它,但找到了同样错误的不同答案让我更加困惑。
Global.asax中捕获到异常:System.Web.HttpRequestValidationException(0x80004005):从客户端检测到一个潜在危险的Request.Form值(ctl00 $ MainContent $ WarningCtl1 $ TXTWarningText ="
这是warni ......")。 at System.Web.HttpRequest.ValidateString(String value,String collectionKey,RequestValidationSource requestCollection) 在System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc,RequestValidationSource requestCollection) 在System.Web.HttpRequest.get_Form() 在System.Web.HttpRequest.get_HasForm() 在System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) 在System.Web.UI.Page.DeterminePostBackMode() 在System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 在System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 在System.Web.UI.Page.ProcessRequest() 在System.Web.UI.Page.ProcessRequest(HttpContext上下文) at ASP.app_config_appttypes_groupappttypes_aspx.ProcessRequest(HttpContext context) 在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)
请建议。
答案 0 :(得分: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; }
}
答案 1 :(得分:4)
步骤
1.使用jquery提交方法发布表单。
在jquery按钮单击事件方法编码要发布到服务器的字段。示例
$("#field").val(encodeURIComponent($("#field").val())) $("#formid").submit();
在Controller Level中使用
访问所有表单id值HttpUtility.UrlDecode(Request["fieldid"])
确保控制器方法没有参数。
答案 2 :(得分:-1)
MVC
为行动添加了属性 [ValidateInput(假)]
并确认system.web中的web.config设置