2011-09-19 16 views
12

Ho la seguente header di ASP.Net MVC pagina:ValidateRequest in Razor sintassi

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

ho bisogno di spostare questa pagina per la sintassi Razor. Come dovrei impostare ValidateRequest? Grazie

risposta

14

Non si dovrebbe avere bisogno di quella linea nella vista, utilizzare invece l'attributo ValidateInput(false) sul metodo del controller.

Assicurarsi che hai questo nel tuo web.config se si sta utilizzando ASP .NET 4.0 (che presumo si è se si sta utilizzando MVC 3)

<httpRuntime requestValidationMode="2.0"/> 

Martin

+4

CRONACA - MVC 3 non richiede il bandiera più. In genere è consigliabile non metterlo in config, se è possibile evitarlo. – Levi

24

Decora il tuo metodo di azione con ValidateInput attributo

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

Questo è esattamente ciò di cui avevo bisogno, grazie! – Gromer

+0

Ottima risposta! Grazie. +100;) –

2

Da MVC 4 possiamo permettere che i contenuti html solo per la proprietà di classe del modello, non per l'intera richiesta. Solo bisogno di marcare proprietà per attributo AllowHtml

public class EditorialPixlocateRequestViewModel 
{ 
    [AllowHtml] 
    public string Xml { get; set; } 
} 
Problemi correlati