我希望将htmlAttributes作为参数传递给我的HtmlHelper,类似于它在Html.ActionLink中创建的(“linktext”、"Home“、null、HtmlHelper如何将这个新的{width=”100 my“}传递给我的方法
public static string SelectCategoryAdminWithAllItem(this HtmlHelper htmlHelper, string name, **???**)
{ }以及如何解析它?
谢谢
发布于 2011-06-06 12:52:34
当我试图找出这个源时,我仔细查看了MVC2的源代码。在MVC2中,他们使用System.Web.Routing中的RouteValueDictionary过载来将对象转换为字典,而不是像在MVC3中那样有一个可用的助手方法。
public static MvcHtmlString TextBox(this HtmlHelper htmlHelper, string name, object value, object htmlAttributes)
{
return htmlHelper.TextBox(name, value, new RouteValueDictionary(htmlAttributes));
}有点违背直觉,但这是标准的2。
编辑:包含mvc2的更新标记
发布于 2011-06-06 11:17:18
当你对这类问题感兴趣的时候,总是试着去看资料来源。从HtmlHelper.TextBox的实现
public static MvcHtmlString TextBox(this HtmlHelper htmlHelper, string name, object value, object htmlAttributes)
{
return htmlHelper.TextBox(name, value, HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}正如您所看到的,参数类型是object,因为不能将匿名类型用作方法的参数,而object是选择。解析它时,可以使用HtmlHelper.AnonymousObjectToHtmlAttributes法
https://stackoverflow.com/questions/6250624
复制相似问题