淺談ASP.NET Core 2.0 部分視圖(譯)
問(wèn)題
如何在ASP.NET Core 2.0中使用部分視圖來(lái)重用頁(yè)面的公共部分?
答案
新建一個(gè)空項(xiàng)目,在Startup中添加MVC服務(wù)和中間件:
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
添加兩個(gè)模型:
public class EmployeeViewModel { public int Id { get; set; } public string Firstname { get; set; } public string Surname { get; set; } public AddressViewModel Address { get; set; } } public class AddressViewModel { public string Line1 { get; set; } public string Line2 { get; set; } public string Line3 { get; set; } }
添加控制器,返回ViewResult并傳入模型實(shí)例:
public class HomeController : Controller { public IActionResult Index() { var model = new EmployeeViewModel { Id = 1, Firstname = "James", Surname = "Bond", Address = new AddressViewModel { Line1 = "Secret Location", Line2 = "London", Line3 = "UK" } }; return View(model); } }
添加視圖頁(yè)面Index.cshtml:
@using PartialView.Models; @model EmployeeViewModel <div style="border: 1px solid black; margin: 5px"> <h2>Employee Details (parent view)</h2> <p>Firstname: @Model.Firstname</p> <p>Surname: @Model.Surname</p> @Html.Partial("_Address.cshtml", Model.Address) </div>
添加部分視圖_Address.cshtml:
@using PartialView.Models @model AddressViewModel <div style="border: 1px dashed red; margin: 5px"> <h3>Address Details (partial view)</h3> <p>Lin1: @Model.Line1</p> <p>Line2: @Model.Line2</p> <p>Line3: @Model.Line3</p> </div>
現(xiàn)在,解決方案中的目錄結(jié)構(gòu):
運(yùn)行,此時(shí)頁(yè)面顯示:
討論
部分視圖是一種渲染到其他視圖內(nèi)部的特殊視圖。對(duì)于重用視圖的部分結(jié)構(gòu)或者將一個(gè)大視圖分隔為一些小組件,這將非常有用。
部分視圖可以像正常視圖一樣被創(chuàng)建,并且可以通過(guò)控制器方法來(lái)返回ViewResult。關(guān)鍵的區(qū)別在于部分視圖渲染之前不運(yùn)行_ViewStart.cshtml,并且它通常會(huì)被渲染到其他視圖的內(nèi)部。
在視圖內(nèi)部,部分視圖通過(guò)@Html.Partial()方法來(lái)渲染,并且傳入部分視圖的名稱和一個(gè)可選的模型實(shí)例。部分視圖名稱可以是絕對(duì)或者相對(duì)路徑,視圖引擎會(huì)在當(dāng)前目錄和Shared目錄中查找相應(yīng)的部分視圖。
部分視圖能獲取父視圖ViewData數(shù)據(jù)的一個(gè)拷貝。你還可以向其中傳入模型,這通常是父視圖模型的一部分。
注:ASP.NET Core還提供了另外一種更加靈活的解決方案來(lái)重用或者分隔視圖,這種解決方案不僅可以運(yùn)行代碼,而且無(wú)需依賴父視圖。它就是視圖組件,下一節(jié)我們就會(huì)介紹。
原文:https://tahirnaushad.com/2017/08/24/asp-net-core-2-0-mvc-partial-views/
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Linux(Ubuntu)下搭建ASP.NET Core環(huán)境
本文給大家介紹的是無(wú)需安裝mono,在Linux(Ubuntu14.04.4 LTS)下搭建ASP.NET Core環(huán)境 繼續(xù).NET跨平臺(tái),希望對(duì)大家能夠有所幫助。2016-07-07比較簡(jiǎn)單的將數(shù)據(jù)信息導(dǎo)入wrod文檔方案(C# for word)
史上最簡(jiǎn)單將數(shù)據(jù)信息導(dǎo)入wrod文檔方案(C# for word)2010-01-01.NET 與樹莓派WS28XX 燈帶的顏色漸變動(dòng)畫效果的實(shí)現(xiàn)
所謂顏色漸變動(dòng)畫,首先,你要確定兩種顏色——起始色和最終色,比如從綠色變成紅色,綠色是起始,紅色是終點(diǎn)。這篇文章主要介紹了.NET 與樹莓派WS28XX 燈帶的顏色漸變動(dòng)畫,需要的朋友可以參考下2021-12-12.NET IoC模式依賴反轉(zhuǎn)(DIP)、控制反轉(zhuǎn)(Ioc)、依賴注入(DI)
這篇文章主要介紹了.NET IoC模式依賴反轉(zhuǎn)(DIP)、控制反轉(zhuǎn)(Ioc)、依賴注入(DI),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06asp.net url傳遞后地址欄亂碼(中文超過(guò)兩個(gè)漢字)
asp.net 頁(yè)面?zhèn)髦形某^(guò)兩個(gè)漢字后面就亂碼,編碼編好的url是正確的,可傳到另一個(gè)頁(yè)面就會(huì)出錯(cuò),在地址欄就已經(jīng)亂碼了,本文介紹詳細(xì)的解決方法,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)asp.net有所幫助2013-02-02ASP.NET 4.0配置文件中的ClientIDMode屬性詳解
在ASP.NET 4.0中的每個(gè)控件上都多了一個(gè)叫做ClientIDMode的屬性,本文主要介紹了ASP.NET 4.0配置文件中的ClientIDMode屬性詳解,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-11-11win7-vs2012下安裝.net frame work 的過(guò)程圖文詳解
這篇文章主要介紹了win7-vs2012下安裝.net frame work 的過(guò)程圖文詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05Visual Studio 2010 前端開發(fā)工具/擴(kuò)展/插件推薦
這篇文章主要介紹了一組我喜愛(ài)的擴(kuò)展和工具能讓Visual Studio在web開發(fā)方面更簡(jiǎn)單,我只是集中在我安裝和使用過(guò)的一些工具,如果你還有其它好用的的話,請(qǐng)?jiān)谶@里留言。2016-06-06