gpt4 book ai didi

asp.net - 通过 url 路由访问页面时,JQuery 对象出现预期错误

转载 作者:行者123 更新时间:2023-11-30 23:46:12 25 4
gpt4 key购买 nike

在我的 global.asax 中,我的 url 路由设置如下所示:

routes.MapPageRoute("User Logon", "{Vendor}/Logon", "~/Logon.aspx");

在 logon.aspx 页面中,我有一个“风格化”登录按钮的脚本:

<link href="jquery/css/flick/jquery-ui-1.8.1.custom.css" rel="stylesheet" type="text/css" />
<link href="images/style.css" rel="stylesheet" type="text/css" />
<script src="jquery/js/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="jquery/js/jquery-ui-1.8.1.custom.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#<%= ButtonLogon.ClientID %>').button();
});
</script>

当我访问页面时,我们使用一个 url(在 Debug模式下)http://localhost/logon.aspx?v=1页面加载正确,jquery 按钮命令加载正确。但是当我使用新的 url 路由访问该页面时,出现此错误。

Microsoft JScript 运行时错误:需要对象

有人知道为什么会发生这种情况吗?

谢谢。

最佳答案

这是因为 HTML 中的相对路径。

当您以http://your.domain/Logon.aspx访问您的页面时,相对URL jquery/js/jquery-1.4.2.min.js解析为 http://your.domain/jquery/js/jquery-1.4.2.min.js并正确加载。

但是当您以 http://your.domain/xxx/Logon.aspx 访问它时,该 URL 解析为 http://your.domain/xxx/jquery/js/jquery-1.4.2.min.js ,因为确实没有名为 xxx 的文件夹在您的服务器上,服务器返回 404 并且脚本无法加载。因此,当您随后尝试访问该脚本中定义的函数和变量时,您会收到错误。

要解决此问题,您应该使用绝对路径 - 即 /jquery/js/jquery-1.4.2.min.js (注意前导斜杠),或使用 ResolveUrl (或 Url.Content )正确映射 URL 的方法 - 即 <%= Url.Content( "~/jquery/js/jquery-1.4.2.min.js" ) %>

后一个选项更可取,因为它不依赖于托管在域根目录下的应用程序。

关于asp.net - 通过 url 路由访问页面时,JQuery 对象出现预期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2935779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com