ASP.NET Core MVC基础学习之局部视图(Partial Views)

 更新时间:2019-09-08 20:01:35   作者:佚名   我要评论(0)

1.什么是局部视图
  局部视图是在其他视图中呈现的视图。通过执行局部视图生成的HTML输出呈现在调用视图中。与视图一样,局部视图使用 .cshtml 文件扩展名。

1.什么是局部视图

  局部视图是在其他视图中呈现的视图。通过执行局部视图生成的HTML输出呈现在调用视图中。与视图一样,局部视图使用 .cshtml 文件扩展名。当希望在不同视图之间共享网页的可重用部分时,就可以使用局部视图。

2.什么时候使用局部视图

  局部视图是将大视图分成小组件的有效方法。通用的布局元素应在 _Layout.cshtml 中指定,非布局可重用内容可以封装成局部视图。

  如果一个由几个逻辑部分组成的复杂页面,那么将每个逻辑部分作为局部视图是很有用。布局视图与普通视图之间没有语义差别,它们只是以不同的方式呈现。你可以直接从控制器的 ViewResult 返回视图,而这个视图也可以当局部视图来用。视图和局部视图的主要区别是呈现方式不同,局部视图不运行 _ViewStart.cshtml,而视图运行。

3.引用局部视图

  在视图页面中有几种方法呈现局部视图。最简单的是使用 Html.Partial ,它通过 @ 前缀来调用并返回 IHtmlString : @Html.Partial("AuthorPartial")

  PartialAsync 方法对包含异步代码的局部视图是可用的: @await Html.PartialAsync("AuthorPartial") 

  还可以使用 RenderPartial 方法来呈现局部视图。这个方法不返回结果:它将渲染结果直接输出到响应中。正因为它不返回响应,所以必须在 Razor 代码块中调用。通用也有一个异步方法 RenderPartialAsync:

@{
 Html.RenderPartial("AuthorPartial");
}

4.发现局部视图

  当引用局部视图时,可以通过多种方式找到它的位置:

//以视图名使用当前文件夹下的视图,如果没有找到,则搜索Shared 文件夹
@Html.Partial("ViewName")

//这个名称的视图必须在相同文件夹下
@Html.Partial("ViewName.cshtml")

//依据应用根路径定位视图,以“/” 或 “~/” 开头的路径表示应用根路径
@Html.Partial("~/Views/Folder/ViewName.cshtml")

//使用相对路径
@Html.Partial("../Account/ViewName.cshtml")

  局部视图可以链接。也就是说,一个局部视图可以调用另一个局部视图(只要不创建循环)。

5.局部视图访问数据

  当局部视图被实例化时,它获取父视图的 ViewData 字典的副本。对局部视图中的数据所做的更新不会影响到父视图。局部视图返回时,局部视图中更改的 ViewData 将丢失。

  你可以将 ViewDataDictionary 的实例传递到局部视图: @Html.Partial("PartialName",customViewData)

  也可以将模型传递到局部视图: @Html.Partial("PartialName",viewModel)

  也可以将ViewDataDictionary 和 模型都传递到视图: @Html.Partial("PartialName",viewModel,customViewData)

6.简单实战

  先创建用到的模型:

namespace MVCTest.Models
{
 public class Article
 {

      public Article()
        {
           Sections = new List<ArticleSection>();
        }
public string AuthorName { get; set; }
  public List<ArticleSection> Sections { get; set; }
 }

 public class ArticleSection
 {
  public string Title { get; set; }
  public string Content { get; set; }
 }
}

  然后在控制器中实例化模型:

public class ArticleController : Controller
 {
  // GET: Article
  public ActionResult Index()
  {
   var article = new Article();
   article.AuthorName = "test";
   article.Sections.Add(new ArticleSection() { Title="title",Content="content"});
   return View(article);
  }

 }

  父视图:

@model MVCTest.Models.Article

@{
 ViewData["Title"] = "Index";
}

<h2>@Model.AuthorName</h2>
@Html.Partial("AuthorPartial",Model.AuthorName);

@foreach (var section in @Model.Sections)
{
 @Html.Partial("ArticleSection", section);
}

  AuthorPartial.cshtml:

@model string

<h3>@Model</h3>

  ArticleSection.cshtml:

@model MVCTest.Models.ArticleSection

<h3>@Model.Title</h3>
<h2>@Model.Content</h2>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:

  • ASP.NET Core MVC学习之视图组件(View Component)
  • ASP.NET Core 中的模型绑定操作详解
  • ASP.NET Core实现自定义WebApi模型验证详解
  • ASP.NET Core MVC学习教程之路由(Routing)
  • ASP.NET Core 中的Main方法详解

相关文章

  • Python数据分析模块pandas用法详解

    Python数据分析模块pandas用法详解

    本文实例讲述了Python数据分析模块pandas用法。分享给大家供大家参考,具体如下: 一 介绍 pandas(Python Data Analysis Library)是基于numpy的数据分析
    2019-09-08
  • ASP.NET Core MVC基础学习之局部视图(Partial Views)

    ASP.NET Core MVC基础学习之局部视图(Partial Views)

    1.什么是局部视图   局部视图是在其他视图中呈现的视图。通过执行局部视图生成的HTML输出呈现在调用视图中。与视图一样,局部视图使用 .cshtml 文件扩展名。
    2019-09-08
  • python urllib爬虫模块使用解析

    python urllib爬虫模块使用解析

    前言 网络爬虫也称为网络蜘蛛、网络机器人,抓取网络的数据。其实就是用Python程序模仿人点击浏览器并访问网站,而且模仿的越逼真越好。一般爬取数据的目的主
    2019-09-08
  • 关于Python内存分配时的小秘密分享

    关于Python内存分配时的小秘密分享

    前言 Python 中的sys 模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。 本文将会频繁地使用该模块
    2019-09-08
  • 你应该知道的.NET错误与异常处理机制

    你应该知道的.NET错误与异常处理机制

    前言 错误的出现并不总是编写程序的人的原因,有时应用程序会因为应用程序的最终用户引发的动作或运行代码的环境发生错误。无论如何,我们都应预测应用程序
    2019-09-08
  • 深入了解Python在HDA中的应用

    深入了解Python在HDA中的应用

    Event Handler 在HDA中,要创建Python脚本,需要先选择一个事件处理器(EventHandle),他表示你要在什么时候执行你现在所创建的脚本命令 On Created (在节点创建
    2019-09-08
  • Python代理IP爬虫的新手使用教程

    Python代理IP爬虫的新手使用教程

    前言 Python爬虫要经历爬虫、爬虫被限制、爬虫反限制的过程。当然后续还要网页爬虫限制优化,爬虫再反限制的一系列道高一尺魔高一丈的过程。爬虫的初级阶段
    2019-09-08
  • WCF中使用nettcp协议进行通讯的方法

    WCF中使用nettcp协议进行通讯的方法

    快速阅读 如何在wcf中用net tcp协议进行通讯,一个打开Wcf的公共类。比较好好,可以记下来。 配置文件中注意配置 Service,binding,behaviors. Service中配
    2019-09-08
  • ASP.NET Core MVC学习之视图组件(View Component)

    ASP.NET Core MVC学习之视图组件(View Component)

    1.视图组件介绍   视图组件是 ASP.NET Core MVC 的新特性,类似于局部视图,但它更强大。视图组件不使用模型绑定,并且仅依赖于调用它时所提供的数据。   
    2019-09-08
  • .net 生成拼音码与五笔码实例代码

    .net 生成拼音码与五笔码实例代码

    实例代码: <&#63;xml version="1.0" encoding="utf-8" &#63;> <CodeConfig> <SpellCode> <A>阿啊锕嗄厑哎哀唉埃挨溾锿鎄啀捱皑凒溰嘊敳皚癌毐昹嗳矮
    2019-09-08

最新评论