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

标签 javascript razor onclick

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

<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/

相关文章:

javascript - 递归查找对象上的键

c# - 没有尾部斜杠的链接

javascript - 带参数的 onclick 分配函数

javascript - 从将一个 div 加载到另一个 div 的下拉列表中进行选择(IE8、Chrome)

javascript - 获取表单内所有跨度元素的值和 ID

javascript - Umbraco 表单 DateTimePicker

asp.net-mvc - 如何在 CSHTML 文件中引用 CSS?

asp.net-mvc - 模型数据注释 [DataType(DateType.Date)] 呈现 DatePicker 但隐藏我的值?

html - 单击“搜索”按钮时,未检测到通过 Excel VBA 输入网页搜索框的文本

javascript - 在 Vue.js 应用程序中包含 npm 包