1

在我的 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&#333;netic&trade; Technology</span>

如果我使用简单的 response.write 将这个项目直接呈现到 UI,我会看到:

<p class="c">Cōnetic&trade; Technology</p>

我将如何将 Html.Encode 集成到我的选择列表语句中以产生相同的编码结果?还是有更好的编码方法可以在全局范围内影响选择列表?

这是 MVC 2 顺便说一句,所以没有剃刀。

4

1 回答 1

1

您需要在显示之前对数据进行编码,并且它应该按预期呈现。这是我们在 asp.net mvc2 项目中使用的示例:

<%= Html.Encode(ViewData["PasswordLength"]) %>

它位于命名空间 System.Web.Mvc 中,并将指定的字符串转换为 HTML 编码的字符串。

于 2012-06-15T22:31:12.450 回答