0

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 のカミソリ ビューで拡張メソッドを使用する方法に関する実用的な例は、非常に高く評価されます。

4

1 に答える 1

3

ああ、それを曇らせた!ルーキーエラー。拡張メソッドには小さな間違いがあります。最初のパラメーターのキーワードthisがありません。

于 2013-03-21T20:39:49.747 に答える