Asp.net mvc 3 Asp.net MVC 3 FullCalendar Ajax调用失败

Asp.net mvc 3 Asp.net MVC 3 FullCalendar Ajax调用失败,asp.net-mvc-3,fullcalendar,Asp.net Mvc 3,Fullcalendar,我的简单测试应用程序在本地IIS服务器上运行良好。 当我将它发布到我的共享托管环境(discountasp.net)时,AJAX调用 $("#calendar").fullCalendar({ eventSources: [{ url: '/Home/GetCurrentMonth', type: 'Get', error: function () {

我的简单测试应用程序在本地IIS服务器上运行良好。 当我将它发布到我的共享托管环境(discountasp.net)时,AJAX调用

$("#calendar").fullCalendar({
            eventSources: [{
                url: '/Home/GetCurrentMonth',
                type: 'Get',
                error: function () {
                    alert('there was an error while fetching events!');
                }
            }]

        });
失败了。Firebug显示带有正确参数的get到达,并给出“404未找到”错误。我可以看到控制器方法“GetCurrentMonth”从未被调用过(使用我输入的一些log\audit代码)

由于我的本地IIS服务器运行正常,我无法将IIS7管理器连接到远程站点以获取“失败的请求跟踪”。。我有点困了


如果没有magic web.config设置(哦,请!),我会满足于推荐一个支持ASP.NET MVC 3的“共享托管环境”,在那里FullCalendar可以工作,我会移动应用程序(我当前的托管环境没有那么有用)。

从来没有像你那样硬编码URL。在ASP.NET MVC应用程序中生成url时始终使用url帮助程序:

$('#calendar').fullCalendar({
    eventSources: [{
        url: '@Url.Action("GetCurrentMonth", "Home")',
        type: 'GET',
        error: function () {
            alert('there was an error while fetching events!');
        }
    }]
});
或者,如果这是在一个单独的javascript文件中,您没有访问服务器端代码的权限,一种可能是使用HTML5 data-*属性,例如:

<div id="calendar" data-url="@Url.Action("GetCurrentMonth", "Home")"></div>

我打赌50美元你的代码在部署时不起作用的原因是因为IIS附加了一个虚拟目录。因此,正确的url不是
/Home/GetCurrentMonth
,而是
/YourApplicationName/Home/GetCurrentMonth
。为了避免所有这些问题,在生成URL时应始终使用帮助程序。

不要像以前那样硬编码URL。在ASP.NET MVC应用程序中生成url时始终使用url帮助程序:

$('#calendar').fullCalendar({
    eventSources: [{
        url: '@Url.Action("GetCurrentMonth", "Home")',
        type: 'GET',
        error: function () {
            alert('there was an error while fetching events!');
        }
    }]
});
或者,如果这是在一个单独的javascript文件中,您没有访问服务器端代码的权限,一种可能是使用HTML5 data-*属性,例如:

<div id="calendar" data-url="@Url.Action("GetCurrentMonth", "Home")"></div>

我打赌50美元你的代码在部署时不起作用的原因是因为IIS附加了一个虚拟目录。因此,正确的url不是
/Home/GetCurrentMonth
,而是
/YourApplicationName/Home/GetCurrentMonth
。为了避免所有这些问题,在生成URL时应始终使用帮助程序。

“IIS附加了一个虚拟目录”,您确定吗?搜索“site:discountatsp.net”返回了许多使用子域的点击率(例如stocks.paul.discountatsp.net)@bzlm,不,我不确定,我不知道这个托管网站,但鉴于症状,我打赌50美元这是他的问题。404迁移到生产环境时出错=>在99.999999%的情况下,这是由于硬编码URL造成的。@darin,我的意思是,如果这是唯一不起作用的事情,并且应用程序位于虚拟目录中,那么这必须是唯一使用硬编码路径的地方-否则,链接就不会起作用。但似乎是这样。(:“有一个由IIS附加的虚拟目录”,你确定吗?搜索“site:dispontasp.net”返回了许多使用子域的点击率(例如stocks.paul.dispontasp.net)@bzlm,不,我不确定,我不知道这个托管站点,但考虑到这些症状,我打赌50美元这是他的问题。在99.999999%的情况下,这是由于硬编码的URL造成的404错误=>在99.999999%的情况下。@darin,我的意思是,如果这是唯一不起作用的事情,并且应用程序在虚拟目录中,那么这一定不是他是唯一一个使用硬编码路径的地方——否则,任何链接都不会起作用。但看起来确实如此。(: