Я не могу отключить проверку запросов для контроллера ASP.NET MVC
Я пытаюсь отключить проверку запросов для всех методов действия в контроллере, выполнив это:
[ValidateInput(false)]
public class MyController : Controller
{
...
Ссылка, которую я использую, говорит, что это возможно, и говорит мне сделать это таким образом, но по какой-то причине это не работает.
Если я отправляю html (даже простой тег ) через текстовое поле, я получаю сообщение об ошибке:
От клиента было обнаружено потенциально опасное значение Request.Form (text =").
Это также не работает, прикрепляя атрибут к отдельному методу.
Как я могу отключить проверку запросов для контроллера?
РЕДАКТИРОВАТЬ
Я работаю в VS2008 встроенный тестовый сервер.
4 ответа
Я проверил его на своей машине, как на определении класса, так и на методе действия, и в обоих случаях это сработало. Вы уверены, что ваш взгляд совпадает с вашим методом / контроллером? Вы помещаете атрибут в метод GET или метод POST?
[AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public ActionResult MyAction (int id, string content) {
// ...
}
Чтобы это работало, вам нужно также изменить web.config:
<system.web>
<httpRuntime requestValidationMode="2.0"/>
...
</system.web>
Pro ASP.NET MVC Framework (p466) говорит, что должно работать следующее:
public class MyController : Controller
{
public MyController() {
ValidateRequest = false;
}
}
Можете ли вы опубликовать свой файл контроллера и ваш файл просмотра.
Это работает;
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>