Domanda

La convalida della richiesta è stata modificata per ASP.NET MVC 2, più precisamente, non convalida?

Ho fatto quanto segue:

Web.configs (nella directory App e nella directory Views)

<pages
    validateRequest="false"

Attributo controller / azione

[ValidateInput(false)]

Nella direttiva @Page View

ValidateRequest="false"

La pagina viene ancora convalidata quando viene postato contenuto HTML viene generata un'eccezione.

UPDATE

Creata una nuova applicazione ASP.NET MVC 2 e ho modificato l'indice del controller domestico in questo

    [ValidateInput(false)]
    public ActionResult Index(string InputText)
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC!";

        return View();
    }

e la mia pagina di visualizzazione

<% using(Html.BeginForm()){ %>
    <%= Html.TextBox("InputText") %>
    <input type="submit" />
<% } %>

E sempre lo stesso problema, viene generata un'eccezione.

È stato utile?

Soluzione

Dovrei leggere l'errore più attentamente la prossima volta:

  

Per consentire alle pagine di sovrascrivere le impostazioni di convalida delle richieste dell'applicazione,   imposta requestValidationMode = " 2.0 " nella sezione di configurazione.   Dopo aver impostato questo valore, è quindi possibile disabilitare la convalida della richiesta entro   impostazione validateRequest = " false "

Ho inserito questo nel web.config dell'applicazione

<system.web>
  <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
</system.web>

e ha funzionato.

Aggiornamento:

Stavo eseguendo ASP.NET 4, ecco perché: P

Altri suggerimenti

Inserisci qui un avviso obbligatorio su XSS.

Che hai decorato il controller (o l'azione) con ValidateInputAttribute dovrebbe essere sufficiente, poiché tutta la convalida viene eseguita a questo livello di controller in ASP.NET MVC

Ho appena provato questo ora su un'azione, e restituisce un avviso malevolo () quando lo emetto, quindi mi azzarderei a pensare che ci sia qualcos'altro in corso qui.

Hai un HandleErrorAttribute installato ovunque?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top