Domanda

Come posso usare il Html.TextAreaForwithout codifica esso? So che è un rischio per la sicurezza, ma ho una classe separata che igienizza qualsiasi testo.

Esempio:

@ Html.TextAreaFor (modello => model.PostBodyText, 10, 100, 1)

Sto pensando di utilizzarlo con TinyMCE.

Saluti Raven

Aggiorna Sto utilizzando il nuovo rasoio View Engine.

È stato utile?

Soluzione

Si dovrà rotolare il proprio:

<textarea cols="100" id="PostBodyText" name="PostBodyText" rows="10">
    @MvcHtmlString.Create(Model.PostBodyText)
</textarea>

Naturalmente, in termini di sicurezza questo potrebbe essere molto pericoloso in quanto il sito è ora vulnerabile agli attacchi XSS. Quindi la domanda è perché avere una classe separata che igienizza tutto il testo quando si può semplicemente fare affidamento sulle aiutanti HTML per fare il lavoro per voi?

Altri suggerimenti

Come opzione alternativa si potrebbe desiderare di utilizzare ValidateInput come descritto qui . Un esempio in stile MVC potrebbe essere:

[ValidateInput(false)]
public ActionResult Method(){
     return View()
}

[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Method(){
    // your stuff here
    RedirectToAction("index"); // or something 
}

Credo che sia più il modo di andare MVC. Ora il controller si dice che c'è un problema di sicurezza in quel metodo di controllo. La vista può essere qualsiasi visualizzazione normale utilizzando HTML aiutanti ecc Si noti che questo consente a tutti i tipi di ingresso, non filtrato. Si lavorerà con TinyMCE se .

// modifica

Woops vedo è necessario aggiungere

<httpRuntime requestValidationMode="2.0"/>

a WebConfig e nelle nuove versioni del MVC. Immagino che potrebbe non essere la strada da percorrere.

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