asp.net mvc Html.ActionLink忽略jquery属性

时间:2012-05-05 10:12:55

标签: asp.net-mvc jquery-mobile

我有一个简单按钮的可视化问题,这完全呈现

@Html.ActionLink("<", "Monthly", "Agenda", null, new Dictionary<string, object> { { "data-role", "button" }, { "data-theme", "c" }, { "data-mini", "true" } })

我正在调用的动作虽然需要参数,但我在

中更改了它
@Html.ActionLink("<", "Monthly", "Agenda", new { shift = -1 }, new Dictionary<string, object> { { "data-role", "button" }, { "data-theme", "c" }, { "data-mini", "true" } })

遵循此回答HTML.ActionLink method

当我按上面的方式更改它时按钮执行了它的工作,但它不再呈现为jquery移动按钮

它来自http://i47.tinypic.com/alhs9h.png

到此http://i48.tinypic.com/351ft5z.png

感谢您帮助我

1 个答案:

答案 0 :(得分:5)

要点击正确的Html.ActionLink重载,您需要将RouteValues作为RouteValueDictionary(不是匿名对象)传递:

@Html.ActionLink("<", "Monthly", "Agenda", 
                 new RouteValueDictionary() { { "shift", -1 } }, 
                 new Dictionary<string, object> { { "data-role", "button" }, { "data-theme", "c" }, { "data-mini", "true" } })

或者,更短/更容易阅读,您可以将两个 RouteValues和HtmlAttributes作为匿名对象传递:

@Html.ActionLink("<", "Monthly", "Agenda", new { shift = -1 }, new { data_role = "button", data_theme = "c", data_mini = "true" })

在匿名对象版本中,您必须使用data_而不是data-,但在显示属性键之前,帮助程序会将_替换为-,因此输出为相同。