我正在尝试将其他属性数据图标添加到我的操作链接中,但我收到以下错误:
无效的匿名类型成员声明符。匿名类型成员必须 声明成员作业,简单名称或成员访问权。
使用:
@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 },
new { @rel = "external", @id = "btnProfile" })
例外:
@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 },
new { @rel = "external", @id = "btnProfile", @data-icon = "gear" })
答案 0 :(得分:25)
更新:根据Xander上面的评论,使用data_icon = "gear"
您可以使用IDictionary<string, object>
代替HTML属性的匿名对象:
@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 }
, new Dictionary<string, object>
{
{ "rel", "external" },
{ "id", "btnProfile" },
{ "data-icon", "gear" },
})
请参阅此重载:http://msdn.microsoft.com/en-us/library/dd504988.aspx
您正在使用的帮助程序只是创建字典的一种方便方法,但无论如何都会在后台创建字典。
答案 1 :(得分:17)
我认为您使用像 data_icon 这样的下划线并将其翻译为
答案 2 :(得分:3)
我只使用以下
@using System.Web.Routing
@{
RouteValueDictionary RouteValues = new RouteValueDictionary();
RouteValues["id"] = 11;
RouteValues[Some_Name] = Some_Value; //do this with as many name/value pairs
//as you like
}
@Html.ActionLink("Link Text", "Action", "Controller", RouteValues)
我从Jon在this post的答案中学到了。
我主要在我的控制器中使用它来为RedirectToAction()
方法提供路由值,但是我不明白为什么它在你的视图中不起作用,你需要添加一个{{1}但是。
答案 3 :(得分:0)
使用“ data_icon”代替“ data-icon”。
@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 },
new { @rel = "external", @id = "btnProfile", @data_icon = "gear" })
_将在结果标记中自动转换为-。