I can't turn off Request Validation for an ASP.NET MVC Controller

前端 未结 4 2070
轮回少年
轮回少年 2020-12-20 14:25

I am trying to turn off Request Validation for all action methods in a controller by doing this:

[ValidateInput(false)]
public class MyController : Controller         


        
相关标签:
4条回答
  • 2020-12-20 14:47

    To make it working you need to modify web.config as well:

    <system.web>
        <httpRuntime requestValidationMode="2.0"/>
        ...
    </system.web>
    
    0 讨论(0)
  • 2020-12-20 14:56

    Can you post your controller file and your view file.

    This works;

    MytestController--------------------------------

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Mvc.Ajax;
    
    namespace testapp.Controllers
    {
        [ValidateInput(false)]
        public class MyTestController : Controller
        {
    
            public ActionResult Index()
            {
                return View();
            }
    
        }
    }
    

    MyTest(Index)-------------------------------------------------------

    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Index</title>
    </head>
    <body>
     <% using (Html.BeginForm()) { %>
     <%= Html.TextBox("test")%>
     <button type="submit"  >Submit</button>
     <%} %>
    </body>
    </html>
    
    0 讨论(0)
  • 2020-12-20 15:04

    I tested it on my machine, on both the class definition and the action method, and it worked for me in both cases. Are you sure your view lines up with your method/controller? Are you putting the attribute on the GET method or the POST method?

    [AcceptVerbs(HttpVerbs.Post)]
    [ValidateInput(false)]   
    public ActionResult MyAction (int id, string content) {   
        // ...   
    }
    
    0 讨论(0)
  • 2020-12-20 15:09

    Pro ASP.NET MVC Framework (p466) says the following is supposed to work:

    public class MyController : Controller 
    {
         public MyController() {
            ValidateRequest = false;
         }
    }
    
    0 讨论(0)
提交回复
热议问题