我正在尝试为HtmlHelpers创建一个扩展方法< T>使用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中使用带有剃刀视图的扩展方法的任何工作示例都将非常感激。
答案 0 :(得分:3)
哦雾了!菜鸟错误。扩展方法中存在一个小错误。错过了第一个参数的关键字 this 。