Asp.net mvc 3 MVC3 razor在创建HtmlButtonExtension时出错
我正在尝试在我的页面上使用创建一个自定义html按钮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()); } } 单击此
公共静态类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());
}
}