それがAttributeEncode
ヘルパーが行うことです:
<option value="@Html.AttributeEncode(custString)">@cust.DisplayName</option>
しかしねえ、あなたは何をしているのですか?ドロップダウンリストを生成するためのforeachループ????
Html.DropDownListFor
手遅れになる前に、ヘルパーを試して、ビュー内の出血を止めてください。このヘルパーは、その名前が示すとおりに機能します。そして、エンコードやエスケープなどを処理します。
したがって、ビューモデルを定義するだけです。
public class MyViewModel
{
public string CustomerId { get; set; }
public IEnumerable<SelectListItem> Customers { get; set; }
}
次に、先に進み、コントローラーアクションを設定して、このビューモデルをビューに渡します。
public ActionResult Index()
{
IEnumerable<Customer> customers = ... fetch the domain model from your DAL or something
// map to a view model:
var viewModel = new MyViewModel
{
Customers = customers.Select(x => new SelectListItem
{
Value = x.CustID,
Text = string.Format("{0}%#%{1}%#%{2}", x.CustID, x.LName, x.FName)
})
};
// pass the view model to the view:
return View(viewModel);
}
ドロップダウンリストを生成する必要がある場合は、ビュー内でDropDownListForヘルパーを使用します。
@Html.DropDownListFor(x => x.CustomerId, Model.Customers)