我有一個MVC視圖,其中包含大量的部分視圖。這些部分視圖使用部分請求填充,因此視圖本身的控制器不會向它們傳遞任何數據。如果某個操作在另一個視圖中觸發,是否有可能在其中一個部分視圖中重新加載數據?例如,一個局部視圖有一個jqGrid,我想在用戶在這個網格中選擇一個新行時刷新另一個局部視圖中的數據。 有沒有這種情況下的代碼示例(在C#中),我可以看看我做錯了什麼?我使用ajax調用來觸發一個新的請求,但部分視圖中的非視圖被刷新,所以我不確定問題是否與路由,控制器有關,或者甚至根本不可能! 謝謝!ASP .NET MVC部分視圖和路由
0
A
回答
3
如果您的部分視圖操作返回ViewResult,則該響應將包含一個HTML塊。但是,Ajax調用不會自動將結果插入到DOM中,因爲結果可能是任意數量的格式,並且/或者在DOM更新之前可能需要額外的處理。因此,爲了獲得刷新的局部視圖,您需要將Ajax調用的結果插入DOM樹中的正確位置。
jQuery有一個漂亮的load()
方法,它會爲你封裝這個過程。它將進行Ajax調用,獲取結果並替換選定元素的內部HTML。如果您需要以任何方式轉換結果,您甚至可以將它自己的函數傳遞給它,然後將它插入到DOM樹中。
附註:jQuery.load()
strips scripts returned in the result。它確實保留它們以在某些場景中執行,但它甚至在其他場景中不執行它們。所以,如果你的部分視圖包含腳本,你可以考慮自己更新DOM樹。
所有這一切都與您的C#代碼無關,該代碼在服務器端運行。
但是,通過檢查請求是純HTML還是可以讓您的操作變得更加智能,因此結果將直接由瀏覽器呈現,或者如果是Ajax調用,結果將會是在進入DOM之前由您的腳本處理。該檢查使用Request
擴展方法IsAjaxRequest
完成。
相關問題
- 1. asp net mvc部分視圖驗證
- 2. 部分視圖和html格式Asp Mvc
- 3. MVC路由和局部視圖
- 4. ASP MVC路由
- 5. ASP MVC路由
- 6. ASP MVC路由
- 7. 在ASP .NET MVC Razor視圖
- 8. ASP NET MVC區域的路由/ VB中
- 9. Web Api路由配置ASP-NET MVC
- 10. 關於路由和部分視圖的MVC 3的SEO建議
- 11. Java Spring MVC部分視圖
- 12. 在Firefox中呈現asp .net mvc部分視圖
- 13. 部分視圖空頁面ASP MVC 3
- 14. 用asp mvc部分視圖和jquery過濾和顯示數據
- 15. MVC路由與部分類
- 16. .NET MVC Ajax.ActionLink不返回部分視圖
- 17. MVC部分視圖和Javascript
- 18. ASP .Net MVC路由無控制器和操作名稱
- 19. ASP MVC在部分視圖中定義部分
- 20. ASP .Net Core + Angular 2路由
- 21. ASP.NET MVC路由從部分視圖返回用戶到原點
- 22. 使用ajax進行MVC部分視圖路由
- 23. MVC 3部分視圖的動態路由問題
- 24. Asp.Net中的路由和多視圖MVC
- 25. MVC和強類型視圖路由?
- 26. ASP.NET MVC視圖位置和路由
- 27. MVC路由和網址視圖幫手
- 28. Mvc路由和數字視圖名稱
- 29. ASP MVC 5 - 視圖文件夾外的部分視圖文件
- 30. 區分web api路由和mvc路由