gpt4 book ai didi

jquery - 使用 jquery post for mvc 3 在部署时不起作用

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

所以我有这个 MVC 3 应用程序,它有一个下拉列表,我用它通过 jquery 填充 div。它在本地工作正常,但当我将其部署到服务器时,它重定向不正确。这是我的 jquery:

$("#ddlCategoryMain").change(function () {
$.post("/Home/Category/", { mileID: $(this).val() }, function (data) {
refreshDiv($("div#main"), data);
});
});

function refreshDiv(select, data) {
select.html("");
select.append(data);
}

在本地这工作得很好。但是当部署到我的服务器时,它似乎正在寻找 http://myserver/Home/Category而不是http://myserver/mywebsite/Home/Category

我可以通过简单地在 jquery 函数中的/Home/Category 之前添加应用程序的名称来修复它,但这感觉不对......

我还尝试在/Home 之前添加 ../、~/、../../,但这没有什么区别。

这个小问题有解决办法吗?谢谢!

最佳答案

选项 1

假设您的 jQuery 方法在您的 View 中,您可以使用 Url.Action()

Generates a fully qualified URL to an action method by using the specified action name and controller name.

$("#ddlCategoryMain").change(function () {
$.post('<%=Url.Action("Category", "Home")%>', { mileID: $(this).val() }, function (data) {
refreshDiv($("#main"), data);
});
});

如果您使用 Razor ,则可以这样

$("#ddlCategoryMain").change(function () {
$.post('@Url.Action("Category", "Home")', { mileID: $(this).val() }, function (data) {
refreshDiv($("#main"), data);
});
});

选项 2

如果该方法位于外部 js 文件中,您可以在 View 中声明一个全局变量。

var myUrl = '@Url.Action("Category", "Home")';

然后在你的$.post

$("#ddlCategoryMain").change(function () {
$.post(myUrl , { mileID: $(this).val() }, function (data) {
refreshDiv($("#main"), data);
});
});

关于jquery - 使用 jquery post for mvc 3 在部署时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5251992/

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