Asp.net mvc 3 MVC3 razor在创建HtmlButtonExtension时出错

Asp.net mvc 3 MVC3 razor在创建HtmlButtonExtension时出错,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我正在尝试在我的页面上使用创建一个自定义html按钮 公共静态类HtmlButtonExtension { 公共静态MvcHtmlString按钮(此HtmlHelper帮助程序,字符串文本, I词典(赠品) { var builder=新标记生成器(“按钮”); builder.InnerHtml=文本; builder.MergeAttributes(HtmlatAttributes); 返回MvcHtmlString.Create(builder.ToString()); } } 单击此

我正在尝试在我的页面上使用创建一个自定义html按钮

公共静态类HtmlButtonExtension
{
公共静态MvcHtmlString按钮(此HtmlHelper帮助程序,字符串文本,
I词典(赠品)
{
var builder=新标记生成器(“按钮”);
builder.InnerHtml=文本;
builder.MergeAttributes(HtmlatAttributes);
返回MvcHtmlString.Create(builder.ToString());
}
}
单击此按钮时,我希望将recordID传递给我的操作

下面是我在razor视图中添加的内容

@按钮(“删除”,新建{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
“System.Web.Mvc.HtmlHelper”不包含“Button”的定义,最佳扩展方法重载“JSONServiceRole.Utilities.HtmlButtonExtension.Button(System.Web.Mvc.HtmlHelper,string,System.Collections.Generic.IDictionary)”具有一些无效参数

有人能帮我确定您传递的是一个匿名对象,而不是
htmlAttributes的
IDictionary
的实际错误吗

您可以使用
对象htmlAttributes
添加额外的重载。这是他们在内置ASP.NET MVC Html帮助程序中的操作方式:

public static class HtmlButtonExtension 
{    
  public static MvcHtmlString Button(this HtmlHelper helper, string text,
                                     object htmlAttributes)
  {
      return Button(helper, text, HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
  }

  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());
  }

}
公共静态类HtmlButtonExtension
{    
公共静态MvcHtmlString按钮(此HtmlHelper帮助程序,字符串文本,
对象(属性)
{
返回按钮(helper、text、HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}
公共静态MvcHtmlString按钮(此HtmlHelper帮助程序,字符串文本,
I词典(赠品)
{
var builder=新标记生成器(“按钮”);
builder.InnerHtml=文本;
builder.MergeAttributes(HtmlatAttributes);
返回MvcHtmlString.Create(builder.ToString());
}
}
public static class HtmlButtonExtension 
{    
  public static MvcHtmlString Button(this HtmlHelper helper, string text,
                                     object htmlAttributes)
  {
      return Button(helper, text, HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
  }

  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());
  }

}