我应该如何添加JavaScript onclick事件以链接到较低的文件夹?

时间:2016-03-30 10:40:00

标签: javascript razor onclick

我有一个菜单元素,我通过无序列表以非常标准的方式链接到某些其他页面。如:

<li><a href="@Href("~/Admin/Staff/")">Staff</a></li>

显然,这为我提供了指向我网站的相应页面的链接,该页面在用户单击“员工”文本时被激活。 我想让用户单击li元素中的任意位置来激活链接,因此一个简单的JavaScript onclick事件似乎是最好的。我试过了:

<li onclick="location.href='~/Admin/Staff/'"><a href="@Href("~/Admin/Staff/")">Staff</a></li>

但所做的就是将'/ Admin / Staff /'附加到当前的URL中。我试过替换〜。和..但得到了类似错误的结果。我已经尝试用location.hostname +替换location.href =并且仍然无处可去。

在我看来,当导航到相同或较低层次文件夹中的另一个文件时,这种用法非常好,但JavaScript似乎不喜欢HTML使用的“查找根文件夹”机制。这里有没有人有一个很好的跨浏览器解决方案?我更喜欢非jQuery解决方案,以便不必为了这样一个非常简单的任务而导入整个jQuery库。

1 个答案:

答案 0 :(得分:2)

您每次都必须致电Href()Href将〜/解析为应用程序的实际虚拟目录或根路径。

<li onclick="location.href='@Href("~/Admin/Staff/")'">
    <a href="@Href("~/Admin/Staff/")">Staff</a>
</li>

或者,如果您只想指定和评估一次:

@{
    var staffPath = Href("~/Admin/Staff/");
}

<li onclick="location.href='@(staffPath)'">
    <a href="@(staffPath)">Staff</a>
</li>