MVC3 razor创建HtmlButtonExtension时出错

时间:2012-05-04 22:31:25

标签: asp.net-mvc-3 razor

我正在尝试使用this

在我的页面上创建自定义html按钮
public static class HtmlButtonExtension 
{
  public static MvcHtmlString Button(this HtmlHelper helper, string text,
                                     IDictionary<string, object> htmlAttributes)
  {
      var builder = new TagBuilder("button");
      builder.InnerHtml = text;
      builder.MergeAttributes(htmlAttributes);
      return MvcHtmlString.Create(builder.ToString());
  }
}

当我点击此按钮时,我想将recordID传递给我的Action

以下是我添加到剃刀视图中的内容

@ Html.Button(“删除”,新{name =“CustomButton”,recordID =“1”})

但我无法显示此按钮,并且它正在抛出错误

'System.Web.Mvc.HtmlHelper<wmyWebRole.ViewModels.MyViewModel>' does not contain a definition for 'Button' and the best extension method overload 'JSONServiceRole.Utilities.HtmlButtonExtension.Button(System.Web.Mvc.HtmlHelper, string, System.Collections.Generic.IDictionary<string,object>)' has some invalid arguments

有人可以帮我识别实际错误

1 个答案:

答案 0 :(得分:3)

您传递的是匿名对象,而不是IDictionary<string, object>的{​​{1}}。

您可以使用htmlAttributes添加额外的重载。这就是他们在内置的ASP.NET MVC Html Helpers中的表现:

object htmlAttributes