有没有办法使用TextBoxFor帮助程序与编码文本?
例如:
当使用以下MVC3帮助器和Razor视图引擎时:
@Html.TextBoxFor(model => model.Description)
和model.Description的值被编码,例如:
<script>alert();'</script>
结果是带有编码字符串的文本框,
当想要的结果是带有解码字符串的文本框时:
<script>alert();'</script>
有没有办法使用MVC TextBoxFor编码字符串而不是使用
@Html.TextBox("Description",Server.HtmlDecode(Model.Description))
?
解决方法
你必须对你的字符串进行html解码.
使用System.Web.HttpUtility.HtmlDecode.
System.Web.HttpUtility.HtmlDecode("<script>alert();'</script>")
会导致
<script>alert();'</script>
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))
希望这可以帮助