我在大型MVC2應用程序中遇到了一些有點邊緣案例問題。最初,我有一個主視圖,它將在加載時加載部分視圖,其中包含鏈接。我有一個本地工作環境,它在項目設置頁面中使用空的虛擬路徑設置,並且一個臨時環境(爲了更好地反映多應用程序生產環境)具有特定於應用程序的虛擬路徑。 Everythign在兩者上都運行良好。最近,我有理由將部分視圖加載從頁面加載切換到異步。沒有其他改變。鏈接繼續在本地運行,但是當移動到分段時,忽略添加特定於應用程序的路徑設置,導致所有鏈接斷開。我能夠找到一種解決方法,基於使用更徹底的地址,但我覺得必須有某種配置設置的地方,我錯過了可以解決這個問題。在部分視圖中異步加載時,mvc2中的鏈接停止正確地遵循虛擬路徑
- 包含鏈接的局部視圖必須到位:
更清晰(如我知道前述可能有點不清楚),僅當滿足以下全部真會發生此特定錯誤由一個asych獲取調用和jquery
.html()
函數。當它由MVC直接加載到頁面中時,一切正常。 - 必須位於虛擬路徑設置爲非空虛擬路徑的服務器上。這裏的問題來自於不從虛擬路徑設置追加字符串。事實上,如果您手動在生產的鏈接的適當位置輸入虛擬路徑,它們將正常工作。
- 至少就部分視圖調用而言,它的格式必須是
PartialView("partialViewName", dataObject)
而不是PartialView("~/Areas/appName/Views/controllerName/partialViewName.ascx", dataObject)
。以較長的格式交換確實有效。
誠然,我可以想出通過試錯某種方式在內部鏈接交換較長的名字,以及和擁有一切或多或少的工作,但它不是一個非常乾淨的解決方案,我可能需要在未來的其他地方再次做同樣的事情,我覺得在那裏必須有更好的答案。無論出於何種原因,PartialView()
調用似乎都無法執行某種類型的鏈接按摩,因此View()
調用(包含原始非同步版本中的所有內容)正在自動處理。有沒有人知道我可以做些什麼來異步告訴partialView()
應用基地View()
是相同的虛擬路徑?