NancyFX,在Razor视图中无法识别HtmlHelpers <t>的扩展方法</t>

时间:2013-03-21 17:54:37

标签: razor nancy

我正在尝试为HtmlHelpers创建一个扩展方法&lt; T&gt;使用NancyFX。

代码是这样的

  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中使用带有剃刀视图的扩展方法的任何工作示例都将非常感激。

1 个答案:

答案 0 :(得分:3)

哦雾了!菜鸟错误。扩展方法中存在一个小错误。错过了第一个参数的关键字 this