jQuery UI选项卡ajax未从远程服务器加载
我的MVC Razor应用程序使用带有Ajax的jQuery UI选项卡加载其中一个选项卡,当我从远程服务器访问应用程序时,与从本地开发环境访问应用程序时,我的行为不同 在本地运行,一切正常。“我的选项卡”调用一个控制器方法,该方法返回一个视图,该视图按预期呈现 但是,当我在生产服务器上运行它时,控制器不会向我的页面返回任何内容。我已经进行了诊断检查,可以验证是否调用了该方法,是否从我的数据库中提取了正确的数据,是否随返回视图一起发送了填充的ViewModel。。。呼叫我的控制器 但是,在客户端级别,没有HTML被传递回Javascript。alertui.panel.innerHTML;下面的行仅返回加载的图像html,而不返回任何视图 有人知道为什么在这两种情况下行为会不同吗 编辑:我有两个不同的远程服务器,一个是Dev,一个是Cert,两者都不能工作 谢谢 Javascript:jQuery UI选项卡ajax未从远程服务器加载,jquery,asp.net-mvc-3,jquery-ui,tabs,Jquery,Asp.net Mvc 3,Jquery Ui,Tabs,我的MVC Razor应用程序使用带有Ajax的jQuery UI选项卡加载其中一个选项卡,当我从远程服务器访问应用程序时,与从本地开发环境访问应用程序时,我的行为不同 在本地运行,一切正常。“我的选项卡”调用一个控制器方法,该方法返回一个视图,该视图按预期呈现 但是,当我在生产服务器上运行它时,控制器不会向我的页面返回任何内容。我已经进行了诊断检查,可以验证是否调用了该方法,是否从我的数据库中提取了正确的数据,是否随返回视图一起发送了填充的ViewModel。。。呼叫我的控制器 但是,在客户端
var budgetPanelLoaded = false;
$("#tabs").tabs();
$("#tabs").bind("tabsselect", function (event, ui) {
if ($(ui.tab).text() == "Budgets") {
if (budgetPanelLoaded != true) {
$(ui.panel).append("<img id='budgetsLoadingImage' src='/images/loading.gif' width='96' height='96' />");
};
};
});
$("#tabs").bind("tabsload", function (event, ui) {
if ($(ui.tab).text() == "Budgets") {
alert(ui.panel.innerHTML);
$("#budgetsLoadingImage").remove();
budgetPanelLoaded = true;
};
});
好吧,萤火虫来营救 原来服务器返回了一个500错误,但是jQuery正在清除这个错误,所以我什么也没看到。我必须调试Firebug才能看到它,这对我来说是新的,但很酷,希望我几个月前就知道Firebug
无论如何,最终的原因是我需要在我的Linq to SQL命令上使用一个Include,显然这在我的本地机器上是不必要的本地SQL isntance可能会使它变得不必要?但是,当我部署到网络中并且SQL数据库是远程的时,它需要这个选项。我也遇到过类似的问题,并且发现了以下问题: 注: 如果您使用的是Windows2008r2,您使用的是IIS7.5,要使任何使用JSON的控件正常工作,您可能需要: 安装IIS HTTP重定向功能UI已更改,因此大多数引用都没有正确地引用其所在位置。请参阅服务器管理器,Web角色 运行:%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet\u regiis.exe-ir要正确注册IIS的.NET 4 64位framework,可能需要调整v4.x版本 为json设置mime类型 如果您是通过.DataSourcedataSource=>dataSource.Ajaxajax=>ajax获取数据,请选择。。。如果您使用web开发服务器在VS内部运行,请注意,部署到IIS时会出现问题。当Select尝试从引用的视图获取JsonResult时,即使在定义了json mime类型之后,Fiddler也会显示IIS返回404.0。由于ajax.Select的工作方式
解决此问题的最简单方法是在部署时将网站置于域根。Firebug是一个救星。另外,Chrome的内置webdeveloper工具很好,我想Firebug就是基于它的?或者反过来呢?。但是我更喜欢FireFox,因为有更多的插件可以安装来帮助你更进一步。@Ben Finkel我对jQuery也有类似的问题。它在本地开发服务器上的MVC3网站上运行良好,但在生产服务器上运行失败。我正在使用jQuery lightbox为我的购物车和画廊页面使用jQuery。是否有任何我认为应该做的调整或配置?我建议最好使用Firebug并观察服务器和web浏览器之间的通信。您可能会惊讶地发现从服务器返回/发回的内容。@BenFinkel您应该将您的答案标记为答案。IE的F12开发者工具也会显示:单击网络选项卡,然后单击开始捕获。加载页面中的坏选项卡。结果将显示一个500。单击转到详细视图,然后单击Response Body选项卡查看错误详细信息。
Function EditOrgBudgets(ByVal Orgid As Integer) As ActionResult
Dim db As New charityContainer
Dim o As Organization
Dim ovm As OrganizationViewModel
OpenContainer(db)
'Load the organization from the database
o = (From org In db.Organizations _
Where org.Id = Orgid _
Select org).FirstOrDefault()
If (o Is Nothing) Then
'Organization doesn't exist yet
Return View("OrganizationNotCreated")
Else
'Create any empty budgets that need to be created
CreateBudgetsForOrganization(o, db)
o.OrganizationBudgets = (From ob In db.OrganizationBudgets _
Where ob.OrganizationId = o.Id _
Order By ob.Budget.Year Descending _
Select ob).ToList()
'Map it to the ViewModel
ovm = AutoMapper.Mapper.Map(Of Organization, OrganizationViewModel)(o)
Return View("OrganizationBudgets", ovm)
End If
End Function