前言

之前写过一篇 ASP.NET Core – View Component 里面有提到, View Component 是 Partial View 的加强版.

多了一个 .cs 可以写逻辑. 那如果我们不需要那么复杂就可以使用简化版的 Partial View 了.

重点

1. 一个 View .cshtml, 一个 View Model .cs

2. 用 Tag Helper 或者 IHtmlHelper 调用

3. view name 查找 view file 路径

Create View (.cshtml) and ViewModel (.cs)

files

微软的命名规范开始会有下划线, 但我没有 follow

内容

.cshtml 里面不可以用 @page 哦.

调用

Index.cshtml

@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
var viewModel = new HelloWorldPartialViewModel
{
Value = "Value"
};
} <partial name="HelloWorldPartial" model="@viewModel" />
<partial name="/Pages/HelloWorldPartial.cshtml" model="@viewModel" />
@await Html.PartialAsync("HelloWorldPartial", viewModel)
@await Html.PartialAsync("/Pages/HelloWorldPartial.cshtml", viewModel)

1. Tag Helper <partial> 调用, 使用 View Name

2. Tag Helper <partial> 调用, 使用 View Path

3. IHtmlHelper PartialAsync 调用, 使用 View Name

4. IHtmlHelper PartialAsync 调用, 使用 View Path

我推荐使用第 2 个方式.

View Name 查找 View File

上面 5 个是查找路线.

1. same folder

2. ancestor's folders (祖先 folder 都可以)

3. root /Shared 里面

4. root /Pages/Shared 里面

5. root Views/Shared 里面

我一向不鼓励依赖 ASP.NET Core 的这种潜规则查找的. 通常不符合正常的开发 folder structure.

以 View Component 的比较

我个人倾向于统一使用 View Component 就够了. 不要用 Partial View.

View Component 在调用上比 Partial View 直观, 可以通过 atrribute 拆分 parameters

Partial View 只能传一个 View Model 对象. 写起来很丑.

View Component 唯一的缺点就是一定要有一个 .cs 而且需要把 parameters mapping to View Model (很繁琐的代码), 这个扣分.

但我觉得无伤大雅, 毕竟是封装起来的. 重点是对消费者友好才加多分.

ASP.NET Core – Partial View的更多相关文章

  1. .net core partial view的一些心得

    原文:.net core partial view的一些心得 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog. ...

  2. asp.net core mvc View Component 应用

    ViewComponent 1.View 组件介绍 在ASP.NET CORE MVC中,View组件有点类似于partial views,但是他们更强大,View组件不能使用model bindin ...

  3. AspNet MVC4 教学-22:Asp.Net MVC4 Partial View 技术高速应用Demo

    A.创建Basic类型的MVC项目. B.Model文件夹下,创建文件: LoginModel.cs: using System; using System.Collections.Generic; ...

  4. [转] asp.net core Introducing View Components

    本文转自:http://www.c-sharpcorner.com/uploadfile/8c19e8/asp-net-5-getting-started-with-asp-net-mvc-6/ In ...

  5. ASP.NET Core 2 学习笔记(十)视图

    ASP.NET Core MVC中的Views是负责网页显示,将数据一并渲染至UI包含HTML.CSS等.并能痛过Razor语法在*.cshtml中写渲染画面的程序逻辑.本篇将介绍ASP.NET Co ...

  6. ASP.NET Core 中文文档 第四章 MVC(3.7 )局部视图(partial)

    原文:Partial Views 作者:Steve Smith 翻译:张海龙(jiechen).刘怡(AlexLEWIS) 校对:许登洋(Seay).何镇汐.魏美娟(初见) ASP.NET Core ...

  7. [ASP.NET MVC 小牛之路]12 - Section、Partial View 和 Child Action

    概括的讲,View中的内容可以分为静态和动态两部分.静态内容一般是html元素,而动态内容指的是在应用程序运行的时候动态创建的内容.给View添加动态内容的方式可归纳为下面几种: Inline cod ...

  8. 创建ASP.NET Core MVC应用程序(1)-添加Controller和View

    创建ASP.NET Core MVC应用程序(1)-添加Controller和View 参考文档:Getting started with ASP.NET Core MVC and Visual St ...

  9. ASP.NET Core开发-MVC 使用dotnet 命令创建Controller和View

    使用dotnet 命令在ASP.NET Core MVC 中创建Controller和View,之前讲解过使用yo 来创建Controller和View. 下面来了解dotnet 命令来创建Contr ...

  10. [转][ASP.NET MVC 小牛之路]12 - Section、Partial View 和 Child Action

    本文转自:http://www.cnblogs.com/willick/p/3410855.html 概括的讲,View中的内容可以分为静态和动态两部分.静态内容一般是html元素,而动态内容指的是在 ...

随机推荐

  1. Java JVM——13. 垃圾回收相关算法

    1.生存还是死亡? 在堆里存放着几乎所有的 Java 对象实例,在 GC 执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象.只有被标记为己经死亡的对象,GC 才会在执行垃圾回 ...

  2. Odoo 美化登录界面

    实践环境 Odoo 14.0-20221212 (Community Edition) Odoo Web Login Screen 14.0 https://apps.odoo.com/apps/mo ...

  3. whk随记

    金刚烷,实际上是p4把磷换成碳,然后在每两个碳之间再加一个碳,氢再补齐,由于碳都是sp3杂化,所以画出来并不对称,但实际上是对称的,一氯代物只有两种,像p4o6一样,而p4o10实际上是每个磷外面再连 ...

  4. 解决Win平台VSCode中Python在控制台输出中文乱码的问题

    在菜单Debug->Open Configurations,打开launch.json,新增如下粉红色字符内容: { "configurations": [ { " ...

  5. 【Spring】01 快速入门

    Spring快速入门 空Maven项目创建 声明工程名称,完成 删除SRC目录,创建01 HelloSpring模块 导入依赖 Maven坐标: <!-- https://mvnreposito ...

  6. 【Java】Input,Output,Stream I/O流 01 概述 & 4个基础流

    Input,Output,Stream IO流 I/O Input/Output缩写.I/O技术用于处理设备之间的数据传输,读写文件,网络通讯 Java程序对于数据的操作以Stream流的形式进行 i ...

  7. 【Mybatis-Plus】01 快速上手

    [官网快速上手地址] https://mp.baomidou.com/guide/quick-start.html#%E5%88%9D%E5%A7%8B%E5%8C%96%E5%B7%A5%E7%A8 ...

  8. 美国空军未来利用AI控制无人僚机执行空战或对地作战任务成为可能——AI算法强化学习控制无人机执行空战或对地作战成为可能

    来源: https://export.shobserver.com/baijiahao/html/640202.html https://baijiahao.baidu.com/s?id=177346 ...

  9. C# 反射以及实际场景使用

    1 什么是反射 首先要复习一下C#的编译过程,可以解释为下图 其中dll/exe中,包括元数据(metadata)和IL(中间语言Intermediate Language) 另外还出现的其他名词:C ...

  10. Inno Setup 出现 the drive or unc share you selected does not exist or is not accessible 解决记录

    背景 软件是使用Inno Setup的,且安装后,再次安装是默认安装到历史路径.一次用户电脑维修后,发现再次安装后报错 解决办法 取消自动安装到默认路径就好了~ UsePreviousAppDir=n ...