ASP.NET Core MVC基础学习之局部视图(Partial Views)
 更新时间:2019年08月07日 10:05:18   作者:卡西莫多_Ruby  

这篇文章主要给大家介绍了关于ASP.NET Core MVC基础学习之局部视图(Partial Views)的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core MVC具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

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方法详解

core
mvc
局部视图

相关文章
Asp.net实时显示文本框字数实现代码实时显示文本框字数在日常开发中很常见,也很实用,接下来为大家介绍下如何实现实时显示,感兴趣的朋友可以参考下哈,希望可以帮助到你 2013-04-04
ajaxToolkit:AccordionPane演示与应用实例ajaxToolkit:AccordionPane演示与应用实例,需要的朋友可以参考一下 2013-04-04
asp.net 文件下载实现代码asp.net下实现文件下载的代码。大家可以看下,主要包括文件名等操作。 2009-04-04
asp.net 身份验证(最简单篇)在创建网站中,常常会使用到身份验证。asp.net中内置了几种身份验证的方式,如Windows、Froms、Passport等。这几种身份验证的方式各有不同。 2009-05-05
asp.net4.0框架下验证机制失效的原因及处理办法asp.net4.0框架下验证机制失效的原因及处理办法,需要的朋友可以参考一下 2013-06-06
在后台cs中调用js中示例cs中调用js中的方法有很多,不过比较使用的就那么几个,下面为大家介绍下ScriptManager.RegisterStartupScript方法的使用 2013-10-10
WCF中使用nettcp协议进行通讯的方法这篇文章主要给大家介绍了关于WCF中使用nettcp协议进行通讯的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用WCF具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 2019-07-07
浅谈asp.net Forms身份验证详解这篇文章主要介绍了浅谈asp.net Forms身份验证详解 ,这种方法可以轻松的保持用户的登录状态(如果用户想这样),便捷的用户授权配置,增强的安全性,有兴趣的可以了解一下。 2016-12-12
MVC4制作网站教程第二章 用户登陆2.2这篇文章主要为大家详细介绍了MVC4制作网站教程,用户登陆功能的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2016-08-08
asp.net GridView控件中实现全选的解决方案在GridView中我们经常要利用复选按钮实现全选的功能,下面针对这一解决方案做以总结 2010-03-03

最新评论

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。