Era*_*nn3 7 asp.net-mvc html-encode asp.net-mvc-3
有没有办法使用TextBoxFor帮助程序与编码文本?
例如:使用以下MVC3帮助器和Razor视图引擎时:
@Html.TextBoxFor(model => model.Description)
Run Code Online (Sandbox Code Playgroud)
和model.Description的值被编码,例如:
<script>alert();'</script>
Run Code Online (Sandbox Code Playgroud)
结果是带有编码字符串的文本框,当想要的结果是带有解码字符串的文本框时:
<script>alert();'</script>
Run Code Online (Sandbox Code Playgroud)
有没有办法使用MVC TextBoxFor编码字符串而不是使用
@Html.TextBox("Description", Server.HtmlDecode(Model.Description))
Run Code Online (Sandbox Code Playgroud)
?
你必须对你的字符串进行html解码.
使用System.Web.HttpUtility.HtmlDecode那个.
System.Web.HttpUtility.HtmlDecode("<script>alert();'</script>")
Run Code Online (Sandbox Code Playgroud)
会导致
<script>alert();'</script>
Run Code Online (Sandbox Code Playgroud)
TextBoxFor不支持这一点,你有2个选项
1.显示前解码
@{
Model.Description = System.Web.HttpUtility.HtmlDecode(Model.Description);
}
@Html.TextBoxFor(model => model.Description)
Run Code Online (Sandbox Code Playgroud)
2.使用@ Html.TextBox
@Html.TextBox("Description", System.Web.HttpUtility.HtmlDecode(Model.Description))
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
8592 次 |
| 最近记录: |