MVC虚拟链接什么都不做

时间:2014-05-09 15:34:01

标签: asp.net-mvc-4

喜欢在html虚拟链接中

<a href="#">link</a>

如何在mvc中实现这一目标?

我写了这个,但它指的是该链接下的下拉页面。在链接上悬停时,我只想要下拉,点击链接将无效。

 @{
    var action = ViewContext.RouteData.Values["Action"].ToString();
}
    @Html.ActionLink("Link", "", "", null, new {@class="selected" })


<li> @if (action == "Link1" || action == "Link2"
                          || action == "Link3" || action == "Link4")         
 { 
       @Html.ActionLink("Link", "", "", null, new {@class="selected" })
       }
    else {
       @Html.ActionLink("Link", "", "", null, new {@class="" })
    }

<li>@Html.ActionLink("Link1", "Link1action", "Controller")</li>
<li>@Html.ActionLink("Link2", "Link1action", "Controller")</li>
<li>@Html.ActionLink("Link3", "Link1action", "Controller")</li>      
<li>@Html.ActionLink("Link4", "Link1action", "Controller")</li>

这是活动链接突出显示菜单的代码。链接菜单只是一个虚拟的简单html使用#in href实现目的。

3 个答案:

答案 0 :(得分:2)

根据定义,

Url.ActionHtml.ActionLink用于定义指向您的某条路线的网址或HTML链接。如果您想要一个不指向其中一条路线的链接,则不应使用这些方法。

如果要在路由链接和非路由链接之间保持外观的一致性(在.cshtml文件中),您可以执行以下操作。

如果是路线链接,请以这种方式编写HTML链接:

<a href="@Url.Action("Action", "Controller")" class="@selected">Text</a>

如果是非路由链接,请以这种方式编写HTML链接:

<a href="https://www.google.com" class="@selected">Text</a>
<a href="#" class="@selected">Text</a>

此处selected被假定为string,其值为"selected""" / null

如果定义辅助函数:

string Css(string css, bool condition)
{
    return condition ? css : null;
}

你可以像这样使用它:

<a href="#" class="@Css("selected", action == "Link1")">Text</a>

答案 1 :(得分:1)

尝试以下方法:

  @if (action == "Link1" || action == "Link2"
                              || action == "Link3" || action == "Link4")         
     { 
            @Html.Raw(String.Format("<a href=\"#\" class = 'selected' >link</a>" ))
           }
        else {
           @Html.Raw(String.Format("<a href=\"#\" class = '' >link</a>" ))
        }

希望这有帮助!

答案 2 :(得分:0)

您不必将所有HTML都写为Razor。只需用纯HTML编写虚拟链接