如何在Jquery中获取MVC ActionLink完整路径

时间:2011-08-18 05:42:41

标签: jquery asp.net-mvc-3

我正在尝试根据URL在所选菜单锚点上设置类。我有以下actionlinks

@Html.ActionLink("Home","Index","Home" new {type="new task"},null)
@Html.ActionLink("Home","Index")

我需要在Jquery中获取其完整路径,以根据下面给出的URL更改所选链接

$("a").each(function () {
 if (location.indexOf($(this).prop('href')) != -1) {
                          $(this).addClass('mlnkactive').siblings().removeClass('mlnkactive');
                        $(this).parent().addClass('mlnkactive').siblings().removeClass('mlnkactive');
});

问题在于,当我使用$(this).prop('href')得到链接的href时,上述两个Home链接都具有相同的href.So两个锚点都被选中,我无法根据URL在所选链接上设置类。

谢谢,

2 个答案:

答案 0 :(得分:1)

为什么不在选定的链接服务器端(在ActionLink中)添加css类?

<div id="menulinks">
    @Html.ActionLink("Home","Index","Home" new {type="new task"}, new { @class = "mlnkactive" })
    @Html.ActionLink("Home","Index")
</div>

然后删除该类并将其添加到新选择的链接客户端?像这样:

$('#menulinks a').click(function(){
    $('#menulinks a').removeClass('mlnkactive');
    $(this).addClass('mlnkactive');
}

答案 1 :(得分:0)

也许尝试使用href属性中的@ Url.Action来正常使用。例如:

<a href="@Url.Action("action_name", "controller", new { action_parametr_name = action_parameter_value})">Link 1</a>