gpt4 book ai didi

asp.net-mvc - 使用 jQuery.get 时可以指定相对 URL 吗?

转载 作者:行者123 更新时间:2023-12-03 22:56:55 24 4
gpt4 key购买 nike

我正在尝试像这样进行ajax调用:

 $.get('/home/myInfo', function (data)

{

....

});

我从以下页面调用它:http://localhost/myapp/home/index

当我尝试调用上述电话时​​,它会转到:http://localhost/myapp/home/index/home/myInfo

我希望它转到 http://localhost/myapp/home/myInfo

我必须指定绝对 URL 吗?

最佳答案

绝对不要在 ASP.NET MVC 应用程序中硬编码这样的 URL。处理 url 时始终使用 URL 助手,如下所示:

$.get('@Url.Action("MyInfo", "Home")', function (data) {
....
});

或者,如果这是在一个单独的 javascript 文件中,您无法使用服务器端帮助程序,那么您可以在您正在 AJAX 化的某些 DOM 元素上使用 HTML 5 data-* 属性,例如 div 或其他东西:

<div id="mydiv" data-url="@Url.Action("MyInfo", "Home")">Click me</div>

然后:

$('#mydiv').click(function() {
$.get($(this).data('url'), function (data) {
....
});
});

或者如果您正在对表单或 anchor 进行 AJAX 化:

$('#myanchor').click(function() {
$.get(this.href, function (data) {
....
});
return false;
});

当然, anchor 是使用助手生成的:

@Html.ActionLink("click me", "MyInfo", "Home", null, new { id = "myanchor" })

看到了吗?无需对 URL 进行硬编码。不要这样做,因为它会在您修改 Global.asax 中的路由模式的那一刻中断。通过遵循这种技术,您的代码将完全不知道路由结构的任何变化。

关于asp.net-mvc - 使用 jQuery.get 时可以指定相对 URL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491978/

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