Html.DropDownList()
のようなHTMLヘルパーを使用して出力値をエンコードすることについて心配する必要があるかどうかは疑問です。Html.DropDownList()のようなASP.NET MVCヘルパーメソッドは出力HTMLをエンコードしますか?
もしそうなら、どのようにエンコードするのですか?手動でドロップを作成するのは簡単です。各値を "Html.Encode()
"で囲むだけです。しかし、私はHTMLヘルパーを使用するときにこれを行う方法を知らない。
Html.DropDownList()
のようなHTMLヘルパーを使用して出力値をエンコードすることについて心配する必要があるかどうかは疑問です。Html.DropDownList()のようなASP.NET MVCヘルパーメソッドは出力HTMLをエンコードしますか?
もしそうなら、どのようにエンコードするのですか?手動でドロップを作成するのは簡単です。各値を "Html.Encode()
"で囲むだけです。しかし、私はHTMLヘルパーを使用するときにこれを行う方法を知らない。
値は自動的にエンコードされているようですので、自分で行う必要はありません。実際のASP.NET MVC 1.0のソースコードの抜粋です(SelectExtensions.csのコードプレックスからダウンロードできます)。
private static string ListItemToOption(SelectListItem item) {
TagBuilder builder = new TagBuilder("option") {
InnerHtml = HttpUtility.HtmlEncode(item.Text)
};
if (item.Value != null) {
builder.Attributes["value"] = item.Value;
}
if (item.Selected) {
builder.Attributes["selected"] = "selected";
}
return builder.ToString(TagRenderMode.Normal);
}
ASP.NET MVCでほとんどのヘルパーを使用する場合は、テキストを自分でエンコードしないでください。そうすると、ダブルエンコードされたテキストになりますが、これは間違っています。 – Eilon