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をselectlistステートメントに統合して、同じエンコード結果を生成するにはどうすればよいですか?または、グローバルレベルで選択リストに影響を与えるより良いエンコード方法はありますか?

これはMVC2ですので、かみそりはありません。

4

1 に答える 1

1

表示する前にデータをエンコードする必要があり、期待どおりにレンダリングする必要があります。ここでは、asp.net mvc2 プロジェクトで使用した例を示します。

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

名前空間 System.Web.Mvc にあり、指定された文字列を HTML エンコードされた文字列に変換します。

于 2012-06-15T22:31:12.450 に答える