2011-09-19 14 views
12

Mam następujący header z ASP.Net MVC strony:ValidateRequest w składni Razor

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Admin.Master" Inherits="System.Web.Mvc.ViewPage<NEOGOV_Ideas.Models.SubIdeaAdminPage>" 
ValidateRequest="false" %> 

muszę przenieść stronę do składni Razor. Jak ustawić ValidateRequest? Dzięki

Odpowiedz

14

Nie powinieneś potrzebować tej linii w widoku, zamiast tego użyj atrybutu ValidateInput(false) w metodzie sterownika.

Upewnij się, że masz to w web.config jeśli używasz ASP .NET 4.0 (które jak mniemam jesteś jeśli używasz MVC 3)

<httpRuntime requestValidationMode="2.0"/> 

Martin

+4

FYI - MVC 3 nie wymaga już użycia flagi . Ogólnie zaleca się, aby nie umieszczać tego w konfiguracji, jeśli możesz tego uniknąć. – Levi

24

Udekoruj swój sposób działania z ValidateInput atrybutu

[HttpPost] 
[ValidateInput(false)] 
public ActionResult index() 
{ 
    return view(); 
} 
+0

To jest dokładnie to, czego potrzebowałem, dzięki! – Gromer

+0

Świetna odpowiedź! Dzięki. +100;) –

2

Od MVC 4 możemy pozwolić zawartości HTML tylko dla właściwości klasy modelu, a nie dla całego wniosku. Wystarczy zaznaczyć właściwość przez atrybut AllowHtml

public class EditorialPixlocateRequestViewModel 
{ 
    [AllowHtml] 
    public string Xml { get; set; } 
} 
Powiązane problemy