亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談ASP.NET Core 2.0 部分視圖(譯)

 更新時(shí)間:2017年11月08日 09:18:57   作者:三生石上(FineUI控件)  
本篇文章主要介紹了淺談ASP.NET Core 2.0 部分視圖(譯),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

問(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)文章

最新評(píng)論