有没有办法将TextBoxFor helper与编码文本一起使用?
例如: 当使用以下MVC3的帮助器和Razor视图引擎时:
@Html.TextBoxFor(model => model.Description)
并且对model.Description的值进行编码,例如:
<script>alert();'</script>
结果是带有编码字符串的文本框, 当想要的结果是带有解码字符串的文本框时:
<script>alert();'</script>
有没有办法将MVC TextBoxFor与编码字符串一起使用而不是使用
@Html.TextBox("Description", Server.HtmlDecode(Model.Description))
答案 0 :(得分:5)
你必须对你的字符串进行html解码。
使用System.Web.HttpUtility.HtmlDecode
。
System.Web.HttpUtility.HtmlDecode("<script>alert();'</script>")
将导致
<script>alert();'</script>
TextBoxFor不支持,因此您有2个选项
<强> 1。显示前解码
@{
Model.Description = System.Web.HttpUtility.HtmlDecode(Model.Description);
}
@Html.TextBoxFor(model => model.Description)
<强> 2。使用@ Html.TextBox进行此
@Html.TextBox("Description", System.Web.HttpUtility.HtmlDecode(Model.Description))
希望这会有所帮助