Lan*_*usT 10 asp.net-mvc jquery
所以我有这个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);
}
Run Code Online (Sandbox Code Playgroud)
本地这个工作正常.但是当部署到我的服务器时,它似乎正在寻找http:// myserver/Home/Category而不是http:// myserver/mywebsite/Home/Category
我可以通过简单地在jquery函数中的/ Home/Category之前添加我的应用程序的名称来修复它,但这感觉不对...
我也尝试在/ Home之前添加../,〜/,../.. /但这没有任何区别.
解决这个小问题的任何方法?谢谢!
Mar*_*man 13
选项1
假设您的jQuery方法在您的视图中,您可以使用 Url.Action()
使用指定的操作名称和控制器名称为操作方法生成完全限定的URL.
$("#ddlCategoryMain").change(function () {
$.post('<%=Url.Action("Category", "Home")%>', { mileID: $(this).val() }, function (data) {
refreshDiv($("#main"), data);
});
});
Run Code Online (Sandbox Code Playgroud)
或者,如果你使用剃须刀
$("#ddlCategoryMain").change(function () {
$.post('@Url.Action("Category", "Home")', { mileID: $(this).val() }, function (data) {
refreshDiv($("#main"), data);
});
});
Run Code Online (Sandbox Code Playgroud)
选项2
如果方法位于外部js文件中,则可以在视图中声明全局变量.
var myUrl = '@Url.Action("Category", "Home")';
Run Code Online (Sandbox Code Playgroud)
然后在你的 $.post
$("#ddlCategoryMain").change(function () {
$.post(myUrl , { mileID: $(this).val() }, function (data) {
refreshDiv($("#main"), data);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14144 次 |
| 最近记录: |