NancyFX を使用して HtmlHelpers<T> の拡張メソッドを作成しようとしています。
コードはこのようなものです
public static IHtmlString DropdownList<T>(HtmlHelpers<T> htmlHelper, string elementId, string elementName, IEnumerable<DropdownListItem> dropdownListItems)
{
var builder = new StringBuilder();
if (dropdownListItems != null && dropdownListItems.ToList().Any())
{
dropdownListItems.ToList().ForEach(t => builder.AppendFormat(@"<option value=""{0}"" {1}>{2}</option>", t.Value, t.Selected ? "selected" : string.Empty, t.Text));
}
var htmlMarkup = string.Format(@"<select id=""{0}"" name=""{1}"">{2}</select>", elementId, elementName, builder);
return new NonEncodedHtmlString(htmlMarkup);
}
このメソッドは、cshtml ビューでは認識されません。名前空間ありとなしの両方を試しました。名前空間を使用する場合、web.config の razor セクションに登録しました。
私が使用しているNancyFXのバージョン: 0.16.1.0
NancyFX のカミソリ ビューで拡張メソッドを使用する方法に関する実用的な例は、非常に高く評価されます。