淺談ASP.NET Core 2.0 部分視圖(譯)
問題
如何在ASP.NET Core 2.0中使用部分視圖來重用頁面的公共部分?
答案
新建一個空項目,在Startup中添加MVC服務和中間件:
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?}");
});
}
添加兩個模型:
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并傳入模型實例:
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);
}
}
添加視圖頁面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)在,解決方案中的目錄結構:
運行,此時頁面顯示:

討論
部分視圖是一種渲染到其他視圖內部的特殊視圖。對于重用視圖的部分結構或者將一個大視圖分隔為一些小組件,這將非常有用。
部分視圖可以像正常視圖一樣被創(chuàng)建,并且可以通過控制器方法來返回ViewResult。關鍵的區(qū)別在于部分視圖渲染之前不運行_ViewStart.cshtml,并且它通常會被渲染到其他視圖的內部。
在視圖內部,部分視圖通過@Html.Partial()方法來渲染,并且傳入部分視圖的名稱和一個可選的模型實例。部分視圖名稱可以是絕對或者相對路徑,視圖引擎會在當前目錄和Shared目錄中查找相應的部分視圖。
部分視圖能獲取父視圖ViewData數(shù)據(jù)的一個拷貝。你還可以向其中傳入模型,這通常是父視圖模型的一部分。
注:ASP.NET Core還提供了另外一種更加靈活的解決方案來重用或者分隔視圖,這種解決方案不僅可以運行代碼,而且無需依賴父視圖。它就是視圖組件,下一節(jié)我們就會介紹。
原文:https://tahirnaushad.com/2017/08/24/asp-net-core-2-0-mvc-partial-views/
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
在ASP.NET2.0中通過Gmail發(fā)送郵件的代碼
我們有時候需要發(fā)送郵件給訪問網頁的用戶,例如,注冊的時候,發(fā)一確認信什么的。那么,在ASP.NET2.0中該如果操作呢?2008-06-06
ASP.NET Core中的Razor頁面實現(xiàn)路由功能
本文詳細講解了ASP.NET Core中的Razor頁面實現(xiàn)路由功能的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02
Asp.net使用SignalR實現(xiàn)聊天室的功能
這篇文章主要介紹了Asp.net使用SignalR實現(xiàn)聊天室的功能的相關資料,需要的朋友可以參考下2016-04-04
.Net?Core跨平臺應用開發(fā)串口篇HelloArm
這篇文章介紹了.Net?Core跨平臺應用開發(fā)串口篇HelloArm,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-01-01

