我有一个菜单元素,我通过无序列表以非常标准的方式链接到某些其他页面。如:
<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库。
答案 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>