zoukankan      html  css  js  c++  java
  • ASP.NET MVC 3 RC ValidateInput(false)页面验证失效的解决方案

    毫无疑问这是一个bug,很多用户升级到rc时都遇到了这个问题,以前很正常的提交只要带有html标签就被报"...从客户端中检测到有潜在危险的 request.form 值。"即使在web.config中禁用页面验证也会出现这个问题.

    成因和部分解决方法见:

    ASP.NET MVC 3里面客户端输入验证的改动 

    另一解决方法见:

    http://weblogs.asp.net/imranbaloch/archive/2010/11/14/mvc-3-rc-bug-and-quick-solution.aspx

    我采用后者的解决方案:

    1,后台页面中增加using System.Web.Helpers;的引用 

    2,修改请求的httppost方法:

    之前:

     1 public ActionResult ActionA(FormCollection form1)
     2 {
     3     return View();
     4 }
     5 public ActionResult ActionB(int i,FormCollection form)
     6 {
     7     return View();
     8 }
     9 public ActionResult ActionC(int i, FormCollection formABC, string j, [Bind(Include = "Name,Address")] Student s)
    10 {
    11     return View();
    12 }
    13 public ActionResult ActionD(int i, string j,FormCollection f , string k, string t)
    14 {
    15     return View();
    16 }
    17 public ActionResult ActionE(FormCollection form123, string t, string t2)
    18 {
    19     return View(new Student { Age = 30, Name = "Akbar" });
    20 }

     之后:

     1 public ActionResult ActionA()
     2 {
     3     FormCollection form1 = new FormCollection(Request.Unvalidated().Form);
     4     return View();
     5 }
     6 public ActionResult ActionB(int i)
     7 {
     8     FormCollection form = new FormCollection(Request.Unvalidated().Form);
     9     return View();
    10 }
    11 public ActionResult ActionC(int i, string j, [Bind(Include = "Name,Address")] Student s)
    12 {
    13     FormCollection formABC = new FormCollection(Request.Unvalidated().Form);
    14     return View();
    15 }
    16 public ActionResult ActionD(int i, string j, string k, string t)
    17 {
    18     FormCollection f  = new FormCollection(Request.Unvalidated().Form);
    19     return View();
    20 }
    21 public ActionResult ActionE( string t, string t2)
    22 {
    23     FormCollection form123 = new FormCollection(Request.Unvalidated().Form);
    24     return View(new Student { Age = 30, Name = "Akbar" });
    25 }

     解决!应该会在正式版中除掉这个bug.

     希望本文能对您有所帮助!

  • 相关阅读:
    编译OpenSLL windows xp版本
    IGES简单介绍
    STEP标准的简单介绍
    Git工具使用遇到的一些问题记录
    THULAC:一个高效的中文词法分析工具包
    【转】OnDropFiles 可能无响应的问题
    【转】OnPaint()函数的作用原理
    关于Oracle连接异常--添加、修改账户信息
    js生成64位hash码
    关于 VUE 页面跳转
  • 原文地址:https://www.cnblogs.com/fhmsha/p/1888642.html
Copyright © 2011-2022 走看看