通過呼叫多個操作建立 ASP.NET MVC 檢視
若要在 ASP.NET MVC 中建立檢視,通常是呼叫一個使用模型來準備檢視資料的操作方法。 然後,該操作方法呼叫控制器的 View 方法來建立檢視。 但是,您可能要呼叫不同的操作方法來建立檢視的不同部分。 例如,假定有一個網頁要顯示最新新聞、天氣和體育資訊。 在這種情況下,可能需要一個操作方法來處理新聞,一個處理天氣,另一個則處理體育資訊。 這樣,您就可以在不同的條件下呈現不同的檢視,或將複雜的檢視分解成若干個更小、更易於管理的小塊。
本主題描述瞭如何從建立檢視的子部分(子檢視)的檢視(父檢視)中呼叫操作方法。
ASP.NET MVC 提供了 HTML 幫助器方法(擴充套件方法),這些方法可呈現大多數型別的 HTML 元素(例如窗體和連結),並簡化了一些常規任務(如輸入驗證)。 用於呈現子檢視的 HTML 幫助器有兩個:Action 和 RenderAction。 這些 HTML 幫助器位於 ChildActionExtensions 類中。
Action 方法將子檢視以字串的形式返回,然後可以直接呈現它。 RenderAction 方法就地呈現子檢視。
例如,假設您有一個名為 ChildList 的子檢視,它由上一節中顯示的 HTML 組成。 控制器包含以下用於呈現子檢視的操作方法:
請注意,在控制器中,沒有用於呈現父檢視或子檢視的特定方法。 您首先呈現父檢視,父檢視然後呈現所需的子檢視。
若要呼叫操作方法並在父檢視中呈現子檢視,既可以使用 Action 幫助器方法,也可以使用 RenderAction 幫助器方法,如以下示例中所示:
// One alternative (renders a string) <%= Html.Action("ChildList") %> //Another alternative (renders in place) <% Html.RenderAction("ChildList"); %>
請注意,由於 Html.Action 幫助器方法返回一個字串,所以等號 (=) 是必需的。
可以從父檢視中的多個地方呼叫相同的操作方法,並向其傳遞引數以指定要呈現的內容。 Action 和 RenderAction 都具有接受一個物件的方法過載,該物件包含引數名稱和值對。 下面的示例演示了呼叫 Display 操作方法的 RenderAction 方法的標記。 在這種情況下,此標記傳遞包含子檢視的名稱的值的匿名物件,以便呈現相應的部分。 此標記呈現一個“news”部分並緊隨其後呈現“weather”部分。
<% Html.RenderAction("Display", new { section = "News" }); %> <% Html.RenderAction("Display", new { section = "Weather" }); %>
Display 操作方法可能與下面的示例類似:
可以呼叫位於除當前控制器以外的控制器中的操作方法。 若要執行此操作,可呼叫 RenderAction 方法的過載,此方法允許您指定要使用的操作方法和控制器的名稱。 下面的示例演示了呼叫 SectionController 類的 Display 操作方法的標記。 第一個引數(字串)是操作方法的名稱,第二個引數(也是字串)是控制器的名稱。
如果您需要的操作方法位於其他區域中,則可以如下所示在一個物件中傳遞該區域名稱:
通過使用 RenderAction 方法的不同過載,還可呼叫不同區域中的不同控制器
相關文章
- ASP.NET MVC Razor檢視引擎ASP.NETMVC
- ASP.NET MVC – 檢視簡介ASP.NETMVC
- Spring MVC多檢視SpringMVC
- ASP.NET Core MVC 之檢視(Views)ASP.NETMVCView
- asp.net mvc 中的部分檢視ASP.NETMVC
- Asp.Net MVC5 檢視頁面編譯呼叫流轉過程,以及頁面Web展示ASP.NETMVC編譯Web
- Laravel 通過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- 自定義MVC檢視引擎ViewEngine 建立Model的專屬檢視MVCView
- 建立一個ASP.NET MVC 5專案ASP.NETMVC
- 通過MVC模式將Web檢視和邏輯程式碼分離MVC模式Web
- ASP.NET Core 5.0 MVC中的檢視分類——佈局檢視、啟動檢視、具體檢視、分部檢視ASP.NETMVC
- ASP.NET MVC 4 檢視頁去哪裡兒ASP.NETMVC
- ASP.NET MVC 5呼叫其他ActionASP.NETMVC
- ASP.NET Core MVC 之區域性檢視(Partial Views)ASP.NETMVCView
- mybatis呼叫檢視和儲存過程MyBatis儲存過程
- ASP.NET MVC4中呼叫WEB API的四個方法ASP.NETMVCWebAPI
- ASP.NET MVC 5 Web程式設計4 -- Razor檢視引擎ASP.NETMVCWeb程式設計
- 通過一個模擬程式讓你明白ASP.NET MVC是如何執行的ASP.NETMVC
- ASP.Net MVC過濾器ASP.NETMVC過濾器
- ASP.NET Core 入門教程 5、ASP.NET Core MVC 檢視傳值入門ASP.NETMVC
- 檢視一個DLL正在被哪個程式呼叫
- 通過shell指令碼檢視鎖資訊指令碼
- Asp.Net MVC控制器獲取檢視傳值幾種方式ASP.NETMVC
- mybatis mysql 呼叫檢視MyBatisMySql
- Oracle 通過undo塊檢視事務資訊Oracle
- 通過shell指令碼檢視procedure的資訊指令碼
- 通過shell指令碼檢視package的資訊指令碼Package
- ASP.NET MVC動作過濾器ASP.NETMVC過濾器
- 檢視一個通訊埠狀態
- MySQL 建立檢視MySql
- MVC自定義檢視規則MVC
- Laravel 透過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- MySQL資料庫檢視:檢視定義、建立檢視、修改檢視MySql資料庫
- 通過大容量匯入操作控制約束檢查
- 通過Python檢視Azure VM的狀態Python
- 建立一個360°檢視(2):模式開發模式
- ASP.Net MVC開發基礎學習筆記(10):分部檢視PartialViewASP.NETMVC筆記View
- JQuery對ASP.NET MVC資料進行操作jQueryASP.NETMVC