のようなHTMLヘルパーを使用するときに出力を取得する値のエンコードについて心配する必要があるかどうか疑問に思っていますHtml.DropDownList()
。
もしそうなら、どうすればそれらをエンコードできますか?ドロップダウンを手動で作成している場合は簡単に実行できます。各値を「Html.Encode()
」でラップするだけです。ただし、HTMLヘルパーを使用するときにこれを行う方法がわかりません。
のようなHTMLヘルパーを使用するときに出力を取得する値のエンコードについて心配する必要があるかどうか疑問に思っていますHtml.DropDownList()
。
もしそうなら、どうすればそれらをエンコードできますか?ドロップダウンを手動で作成している場合は簡単に実行できます。各値を「Html.Encode()
」でラップするだけです。ただし、HTMLヘルパーを使用するときにこれを行う方法がわかりません。
値は自動的にエンコードされているように見えるので、自分で行う理由はありません。これは、codeplex(SelectExtensions.cs内)からダウンロードできる実際のASP.NETMVC1.0ソースコードのスニペットです。
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);
}
彼らはそうします。
自分でやりたい場合は、エンコードしている HTML の場所によって異なりますHtml.Encode()
。Html.AttributeEncode()