在ASP.NET MVC中的选择列表上使用HTML.Encode

时间:2012-06-15 22:16:45

标签: asp.net-mvc asp.net-mvc-2 encoding

在我的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顺便说一句,所以没有剃刀。

1 个答案:

答案 0 :(得分:1)

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

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

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