在我的ASP.NET MVC应用程序中,我使用选择列表控件为多选小部件生成列表:
<%=Html.ListBoxFor( m => m.Product.Name,
new SelectList(
Model.Products.Where(
s => !Model.Product.Any(
t => t.Id == s.Id.Value
) ).OrderBy( t => t.Name ), "Id", "Name",
new { multiselect = "multiselect", @class = "fancySelect products"} ) ) %>
这将生成一个项目列表。问题是其中一些需要编码:
<span>Cōnetic™ Technology</span>
如果我使用简单的response.write直接将此项呈现给UI,我会看到:
<p class="c">Cōnetic™ Technology</p>
我如何将Html.Encode集成到我的选择列表语句中以产生相同的编码结果?或者是否有更好的编码方法会影响全局级别的选择列表?
这是MVC 2顺便说一句,所以没有剃刀。
答案 0 :(得分:1)
您需要在显示之前对数据进行编码,并且应该按预期进行渲染。 这里是我们在asp.net mvc2项目中使用的示例:
<%= Html.Encode(ViewData["PasswordLength"]) %>
它位于命名空间System.Web.Mvc中,它将指定的字符串转换为HTML编码的字符串。