使用特殊字符创建操作链接

时间:2012-02-03 14:31:05

标签: asp.net-mvc-3 actionlink

我正在尝试创建一个带有句点的url参数的动作链接。我可以通过以下方式做到这一点:

        <a href="/@(tab)Profile/Index?selected=@(tab)&DatingProfile.ProfileId=@(Model.DatingProfile.ProfileId)" selectedTab=@tab>@tab</a>

然而,我不能用ActionLink做到这一点:

        @Html.ActionLink(tab, String.Format("{0}Profile", tab), new{selected=tab,DatingProfile.Id=Model.DatingProfile.ProfileId}, {selectedTab = tab}) 

我收到以下编译错误: CS0746:无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问权声明匿名类型成员。

我有什么想法可以让它与Action Link一起使用?

1 个答案:

答案 0 :(得分:1)

在ActionLink方法中用于路由参数的匿名类型不允许带有“。”的名称。字符 - 它是C#功能 - 你无法改变它。但你可以使用下一个:

@Html.ActionLink(tab, string.Format("{0}Profile", tab), new RouteValueDictionary { { "selected", tab }, { "DatingProfile.ProfileId", Model.DatingProfile.ProfileId } }, new Dictionary<string, object> { { "selectedTab", tab } })