Pergunta

Como posso usar o html.textareaforwithout que a codifica? Sei que é um risco de segurança, mas tenho uma classe separada que higieniza qualquer texto.

Exemplo:

@Html.texteafor (modelo => model.postbodyText, 10, 100, 1)

Estou planejando usá -lo com Tinymce.

Atenciosamente Raven

ATUALIZAREstou usando o novo mecanismo de exibição de barbear.

Foi útil?

Solução

Você precisará rolar o seu próprio:

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

Obviamente, em termos de segurança, isso pode ser muito perigoso, pois seu site agora está vulnerável a ataques XSS. Portanto, a pergunta é por que ter uma classe separada que higieniza todo o texto quando você pode simplesmente confiar nos ajudantes do HTML para fazer o trabalho por você?

Outras dicas

Como uma opção alternativa, você pode usar o validateInput, conforme descrito aqui. Um exemplo no estilo MVC seria:

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

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

Eu acho que esse é mais o caminho do MVC a percorrer. Agora, seu controlador diz que há um problema de segurança nesse método do controlador. Sua visualização pode ser qualquer visualização normal usando ajudantes HTML etc. Observe que isso permite todos os tipos de entrada, não filtrados. Vai funcionar com tinymce embora.

//editar

Woops, vejo que você precisa adicionar

<httpRuntime requestValidationMode="2.0"/>

para o WebConfig também em novas versões do MVC. Acho que pode não ser o caminho a percorrer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top