Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 asp.net mvc 3:部署。getJson URL don';行不通_Asp.net Mvc 3_Getjson - Fatal编程技术网

Asp.net mvc 3 asp.net mvc 3:部署。getJson URL don';行不通

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

我有一个非常简单的asp.net mvc3应用程序,它使用jquery::getJSON调用我的控制器,并通过jquery::tmpl获得一些数据顶部显示

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我不确定是谁投票否决了你,如果是我,那是错误的点击。蒂亚。