【发布时间】:2021-06-24 08:50:16
【问题描述】:
我有一个带有使用 JQuery 加载方法的按钮的 Razor 页面。 页面的 url 路径包含父文件夹名称 .../父文件夹/索引。
JQuery 加载方法用于使用来自同一索引页面上的页面处理程序的结果填充 Bootstrap 模式 div。
要加载的页面处理程序方法是 ../ParentFolder/Index/Handler
我遇到的问题是 JQuery 按钮加载方法不会为页面处理程序生成一致的相对 url 路径。 按钮处的 URL 始终编码为“没有 ParentFolder 的索引/处理程序”。
$(function () {
$('button.details').on('click', function () {
$('.modal-body').load(`/Index/Handler`);
});
})
页面第一次加载时,我点击了它工作的按钮。 load 方法添加父文件夹名称并发出网络调用
.../父文件夹/索引/处理程序
但是,一旦我重新加载页面或导航回该页面,该按钮将不再起作用。 虽然是同一个页面的同一个按钮,但是请求路径不再包含父文件夹。 后续网络调用直接转到
.../Index/Handler(失败 404)
如果我在按钮的加载 URL 中包含父文件夹路径,则会遇到相反的问题。该页面第一次无法工作,因为文件夹名称出现两次(ParentFolder/ParentFolder/Index),但导航后会工作(ParentFolder/Index)
我对 Javascript 不是很有经验。我知道我可以检查代码中的 URL 属性,并在需要时通过字符串操作修改文件夹路径,但我怀疑我遗漏了一些更基本的东西。有什么更好的方法建议吗?谢谢
【问题讨论】:
-
解释此
/Index/Handler的正确行为是将其附加到根路径。根(基本)路径可以通过<head>部分内的<base>元素指定。因此,不应为父文件夹添加前缀。我怀疑这里可能存在一些错误的假设。您应该再次仔细测试,尝试其他网址,... -
问题解决了!谢谢@KingKing!我将
元素添加到 以指定根路径 (.../ParentFolder/) ,并从我的 jQuery url (Index/...) 中删除了文件夹路径。 元素是我缺少的简单部分。 ——
标签: javascript html jquery asp.net-core razor-pages