我有一个菜单元素,我通过无序列表以非常标准的方式链接到某些其他页面。如:
<li><a href="@Href("~/Admin/Staff/")">Staff</a></li>
显然,这给了我一个指向我的网站相应页面的链接,当用户单击文本“Staff”时,该页面就会被激活。 我希望用户能够单击 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 库。
最佳答案
每次都必须调用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>
关于javascript - 我应该如何添加 JavaScript onclick 事件来链接到较低的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36306398/