Asp.net mvc 3 asp.net mvc 3:部署。getJson URL don';行不通
我有一个非常简单的asp.net mvc3应用程序,它使用jquery::getJSON调用我的控制器,并通过jquery::tmpl获得一些数据顶部显示Asp.net mvc 3 asp.net mvc 3:部署。getJson URL don';行不通,asp.net-mvc-3,getjson,Asp.net Mvc 3,Getjson,我有一个非常简单的asp.net mvc3应用程序,它使用jquery::getJSON调用我的控制器,并通过jquery::tmpl获得一些数据顶部显示 function ajaxError(jqXHR, textStatus, errorThrown) { alert(errorThrown); } .... $.ajaxSetup({ cache: false, error: ajaxError // tell me what the er
function ajaxError(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
....
$.ajaxSetup({
cache: false,
error: ajaxError // tell me what the error was
});
var cl = $("#listcontainer");
$(cl).empty();
$.getJSON("/Home/GetSomeData", { oldData: "" }, function (data) {
$.each(data, function (i, item) {
var t = $("#listitem").tmpl(item);
$(cl).append(t);
});
});
在IIS express下一切正常,但是当我将应用程序部署到win2k8 r2上新设置的iis7时,getJSON调用失败,并通过ajaxError函数显示错误“Not Found”。(实际应用程序运行正常,否则)
实际上,我可以通过在浏览器中键入操作来调用它——它会将json返回给我
这是配置错误吗?还是我不应该这样做
TIA。这里的问题是,您的URL是硬编码的,不包含您正在使用的虚拟目录 与其硬编码URL,不如使用MVC内置的路由 您可以使用
UrlHelper
的Action
方法为您生成链接,例如:
Url.Action("GetSomeData","Home")
以便:
$.getJSON(@Url.Action("GetSomeData","Home"),[...]
在这两种情况下,使用下面的
UrlHelper
生成正确的URL:
Url.Action("GetSomeData", "Home")
如果使用剃须刀,结果会是:
$.getJSON("@Url.Action("GetSomeData", "Home")", { oldData: "" }, function (data) {
$.each(data, function (i, item) {
var t = $("#listitem").tmpl(item);
$(cl).append(t);
});
});
太棒了,谢谢,工作顺利。ps我不确定是谁投票否决了你,如果是我,那是错误的点击。蒂亚。