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

标签 jquery asp.net-mvc

所以我有这个 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/

相关文章:

javascript - 如果 javascript 在 $(document).ready 函数中,它不允许我选择按钮

javascript - 如何计算总和?

asp.net-mvc - 在 MVC 3 模型 ID 属性中将 ScaffoldColumn 属性设置为 False 的真正优势是什么

.net - HTTP 错误 403.14 - 禁止 - MVC4 .net 4.5 包

asp.net - 在不安装 .net4.5 的情况下运行 webapi

javascript - 单击 DIV 时专注于输入

javascript - 基本了解javascript中的函数和声明

Javascript 正则表达式表示年份

mysql - Lambda 表达式 - 错误无法将类型 `vicoapi.Pictures' 隐式转换为 `System.Collections.Generic.List<vicoapi.Pictures>' (CS0029)

c# - "An entity object cannot be referenced by multiple instances of IEntityChangeTracker"