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

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>

总结

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

(0)

相关推荐

  • asp.net core mvc权限控制:在视图中控制操作权限

    在asp.net core mvc中提供了权限验证框架,前面的文章中已经介绍了如何进行权限控制配置,权限配置好后,权限验证逻辑自动就会执行,但是在某些情况下,我们可能需要在代码里或者视图中通过手工方式判断权限,我们现在就来介绍下具体的操作方法. 如果在控制器方法里想要判断当前用户是否具有某个权限,可以直接使用HttpContext.User.HasClaim(string cliamtype,string cliamvalue)方法进行判断,该方法返回bool类型,返回true表示具有权限,否则

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

    1.什么是局部视图 局部视图是在其他视图中呈现的视图.通过执行局部视图生成的HTML输出呈现在调用视图中.与视图一样,局部视图使用 .cshtml 文件扩展名.当希望在不同视图之间共享网页的可重用部分时,就可以使用局部视图. 2.什么时候使用局部视图 局部视图是将大视图分成小组件的有效方法.通用的布局元素应在 _Layout.cshtml 中指定,非布局可重用内容可以封装成局部视图. 如果一个由几个逻辑部分组成的复杂页面,那么将每个逻辑部分作为局部视图是很有用.布局视图与普通视图之间没有语义差别

  • ASP.Net Core MVC基础系列之环境设置

    上一节我们介绍了中间件的基本使用, 这一节我们讲一讲.Net Core的环境设置, 以及根据不同的环境加载不同的配置信息 PS: 由于最近一直比较忙, 一直没抽时间更新这个系列, 最近居多的博友催我, 所以继续挤挤时间更新这个系列, 感谢大家的对本系列教程的喜欢和支持. 在实际开发中, 我们的系统往往会是至少两个以上的运行环境, 最基本的就是, 开发环境和运营环境, 体系完整的公司, 还会有测试环境, 预发布环境, 和一些自定义环境等等, 这些环境使用的配置或是一些参数肯定是不一样的, 我们不可

  • ASP.Net Core MVC基础系列之中间件

    上一节我们介绍了服务注册和基本的管道执行流程, 并且讲到了中间件, 这一节我们就来详细谈谈中间件这个东西 讲中间件, 其实就是讲Startup类里面的ConfigureServices 和Configure 这两个方法 在程序启动类Program 中, 我们在CreateWebHostBuilder 方法中调用了UseStartup方法, 里面用泛型注入了 Startup 类, 那程序就会自动实例化这个类, 并且去执行它里面的ConfigureServices 和Configure 这两个方法.

  • ASP.Net Core MVC基础系列之服务注册和管道

    想必大家都知道ASP.Net Core MVC默认自带了DI容器的, 我们可以很方便的进行使用, 来方便管理对象和生命周期, 那么这一节我就会详细讲解服务注册, 顺便简单讲解一下管道, 让大家知道了基本的MVC运行流程. 回顾一下上一节的内容, 我们从配置文件中获取了输出的字符, 也介绍各个配置的 "优先级" (其实是配置覆盖), 那么我们这一节以服务的方式输出这个字符串, 然后用过DI进行注册服务, 快速了解服务注册. DI容器呢, 依赖接口, 所以我们先新建一个接口, 就叫 IWe

  • ASP.Net Core MVC基础系列之获取配置信息

    这一节, 我们来讲解.Net Core 是怎么获取配置信息的. .Net Core配置信息来源主要有以下几种 1.appsettings.json文件 2. User Secrets 3. 环境变量 4. 命令行参数 5. 自定义XML等等 在我们上一节新建的项目中, 已经默认有appsettings.json文件了, 并且appsettings.json默认会加载到项目中来, 至于为什么会默认加载, 我们可以通过源码进行分析, VS2017反编译不好用, F12看不到完整的代码, 这里我使用I

  • ASP.Net Core MVC基础系列之项目创建

    一 : 系列教程环境介绍 1: 操作系统, Windows 10 专业版 64位 (版本号: 1809) 2: IDE使用Visual Studio 2017专业版 (版本号: 15.9.5) 3: SDK环境 .Net Core 2.2.101 4: 前端 Vue 2.X 5: 数据库 MSSQL 2017 6: 语言使用 C# 7.3 二 : .Net Core 2.2环境安装 进行.Net Core开发, 需要安装.Net Core SDK, 下载地址 下载安装完成之后在CMD里面运行do

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

    1.视图组件介绍 视图组件是 ASP.NET Core MVC 的新特性,类似于局部视图,但它更强大.视图组件不使用模型绑定,并且仅依赖于调用它时所提供的数据. 视图组件特点: 呈块状,而不是整个响应 包括在控制器和视图之间发现的相同的关注点和可测试性优点 可以拥有参数和业务逻辑 通常从布局页面调用 视图组件可以用在任何需要重复逻辑且对局部视图来说过于复杂的情况,例如: 动态导航菜单 标签云(需要查询数据库) 登录面板 购物车 最近发表的文章 典型博客上的侧边栏内容 将在每个页面上呈现的登录面板

  • ASP.NET Core MVC中的局部视图用法

    目录 1.什么是局部视图 2.什么时候使用局部视图 3.引用局部视图 4.发现局部视图 5.局部视图访问数据 6.简单实战 1.什么是局部视图 局部视图是在其他视图中呈现的视图.通过执行局部视图生成的HTML输出呈现在调用视图中.与视图一样,局部视图使用 .cshtml 文件扩展名.当希望在不同视图之间共享网页的可重用部分时,就可以使用局部视图. 2.什么时候使用局部视图 局部视图是将大视图分成小组件的有效方法.通用的布局元素应在 _Layout.cshtml 中指定,非布局可重用内容可以封装成

  • 详解ASP.NET Core MVC 源码学习:Routing 路由

    前言 最近打算抽时间看一下 ASP.NET Core MVC 的源码,特此把自己学习到的内容记录下来,也算是做个笔记吧. 路由作为 MVC 的基本部分,所以在学习 MVC 的其他源码之前还是先学习一下路由系统,ASP.NET Core 的路由系统相对于以前的 Mvc 变化很大,它重新整合了 Web Api 和 MVC. 路由源码地址 :Routing-dev_jb51.rar 路由(Routing)功能介绍 路由是 MVC 的一个重要组成部分,它主要负责将接收到的 Http 请求映射到具体的一个

  • ASP.NET Core MVC学习教程之路由(Routing)

    前言 ASP.NET Core MVC 路由是建立在ASP.NET Core 路由的,一项强大的URL映射组件,它可以构建具有理解和搜索网址的应用程序.这使得我们可以自定义应用程序的URL命名形式,使得它在搜索引擎优化(SEO)和链接生成中运行良好,而不用关心Web服务器上的文件是怎么组织的.我们可以方便的使用路由模板语法定义路由,路由模板语法支持路由值约束,默认值和可选值. 基于约束的路由允许全局定义应用支持的URL格式,以及这些格式是怎样各自在给定的控制器中映射到指定的操作方法(Action

随机推荐