通過呼叫多個操作建立 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
- ASP.NET Core MVC 之檢視(Views)ASP.NETMVCView
- 建立一個ASP.NET MVC 5專案ASP.NETMVC
- Laravel 通過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- asp.net mvc檢視傳遞資料至另一頁的檢視ASP.NETMVC
- ASP.NET Core 5.0 MVC中的檢視分類——佈局檢視、啟動檢視、具體檢視、分部檢視ASP.NETMVC
- ASP.NET Core MVC 之區域性檢視(Partial Views)ASP.NETMVCView
- ASP.Net MVC過濾器ASP.NETMVC過濾器
- ASP.NET Core 入門教程 5、ASP.NET Core MVC 檢視傳值入門ASP.NETMVC
- Asp.Net MVC控制器獲取檢視傳值幾種方式ASP.NETMVC
- ASP.Net MVC開發基礎學習筆記(10):分部檢視PartialViewASP.NETMVC筆記View
- JQuery對ASP.NET MVC資料進行操作jQueryASP.NETMVC
- ASP.NET MVC+LayUI視訊上傳ASP.NETMVCUI
- Spring MVC教程——檢視閱讀SpringMVC
- 通過Python檢視Azure VM的狀態Python
- Laravel 透過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- 【視訊】ASP.NET Core MVC 2.* 入門ASP.NETMVC
- 【ASP.NET Core】MVC過濾器:執行流程ASP.NETMVC過濾器
- 【ASP.NET Core】MVC過濾器:常見用法ASP.NETMVC過濾器
- 檢視一個通訊埠狀態
- ASP.NET MVC三個重要的描述物件ASP.NETMVC物件
- MySQL_通過binlog檢視原始SQL語句MySql
- ASP.NET MVC 學習心得 (1) - 怎樣建立簡單程式ASP.NETMVC
- ASP.NET + MVC5 入門完整教程三 (上) --- 第一個 MVC 專案_lingshuangcanxue-CSDN 部落格_asp.net mvcASP.NETMVCGC
- ASP.NET MVC路由ASP.NETMVC路由
- 車間操作檢視
- Win10系統下怎麼通過事件檢視器中檢視硬碟檢查結果Win10事件硬碟
- postgresql中檢視建立,欄位拼接,同一個表的多行之間的多個欄位相減SQL
- [譯] 通過檢視控制器容器和子檢視控制器避免龐大的檢視控制器
- 【asp.net core 系列】3 檢視以及檢視與控制器ASP.NET
- 4.5 通過SRVCTL 呼叫Oracle RestartOracleREST
- laravel 通過 rpc 呼叫 golang 程式LaravelRPCGolang
- 檢視過濾
- mysql建立索引和檢視MySql索引
- 通過外來鍵連線多個表
- ASP.NET MVC 反射例子ASP.NETMVC反射
- 【MVIEW】Oracle通過物化檢視同步表資料及簡介ViewOracle