我的MVC Razor應用程序使用jQuery UI選項卡和Ajax來加載其中一個選項卡,並且當我從遠程服務器訪問我的應用程序時與我的本地開發環境。jQuery UI選項卡ajax不從遠程服務器加載
本地運行,一切正常。我的選項卡調用一個控制器方法,該方法返回一個視圖,並按預期呈現該視圖。
但是,當我將其從生產服務器上運行時,控制器不會將任何內容返回到我的頁面。我已經進行了診斷檢查,並且可以驗證該方法正在被調用,正在從我的數據庫中提取正確的數據,並且正在發送已填充的ViewModel以及我的控制器的「返回視圖...」調用。
但是,在客戶端級別,沒有HTML被傳回給Javascript。 「alert(ui.panel.innerHTML);」下面的行只返回加載圖像的HTML和沒有被返回的視圖。
有沒有人知道爲什麼這兩種情況下的行爲會有所不同?
編輯:我有兩個不同的遠程服務器,開發人員和證書,都沒有工作。
謝謝!
的JavaScript:
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;
};
});
和控制器:
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
Firebug是一個救星。此外,Chrome的內置web開發工具很好(我認爲Firebug是基於它的?或者相反?)。但我更喜歡FireFox,因爲您可以安裝更多的插件來進一步幫助您。 – Flater
@Ben Finkel我遇到了類似jQuery的問題。它在本地開發服務器上的MVC3網站上運行得非常好,但無法在生產服務器上運行。我正在使用jQuery購物車和使用jQuery lightbox的圖庫頁面。是否有任何調整或配置,通過我的腦海中,我應該做的? – user1079650
我可以推薦的最好方法是使用Firebug並觀察您的服務器和Web瀏覽器之間的通信。您可能會驚訝地發現從服務器返回/發回的內容。 –