Asp .Net Core 3.1MVC使用Partial

Partial:局部的;部分的;就叫部分视图吧,听着比较形象一点。

旧版MVC中是RenderPage("")

一、定义

部分视图是在一个视图中嵌套另外一个视图。在父视图中通过调用子视图并将子视图的HTML呈现给父视图。

二、使用情况

部分视图是将大的视图分解成较小视图组件的一种有效的方法。能使视图元素可以重复使用。通常布局元素在_Layout.cshtml
中指定。非布局的并且可以重复的内容可以封装成部分视图。

如果你有一个复杂的界面有不同的逻辑组成这个界面,可以将不同的逻辑抽象出来,作为部分视图,界面的不同部分都可以实现隔离。
并且整个页面也变得简单,这样一个复杂的页面就可以调用不同的部分视图来实现渲染。

三、声明部分视图

部分视图创建和别的视图创建没什么区别:您可以在View文件夹下面创建一个.cshtml文件。部分视图和常规视图没有什么区别
只是他们的渲染方式不同。

四、引用一个部分视图

在Asp .Net Core3.1中有两种方式引用部分视图,这两种方式都有异步方法和同步方法(这里只展示异步方法,将方法名Async去掉就是同步方法,并且两个方法参数是一样的),也都可以传参数到部分视图。

1、不传参数

第一种方式

1 @{
2     ViewData["Title"] = "Home Page";
3     await Html.RenderPartialAsync("Privacy");
4 }

这个方法不返回结果,它将渲染结果直接输出到响应中。正因为它不返回响应,所以必须在 Razor 代码块中调用。

在旧版的MVC中是使用@RenderPage来渲染

第二种方式

1 @await Html.PartialAsync("Privacy")

这个方法返回结果,会将部分视图中内容渲染到你父视图的当前位置

2、传参数到部分视图

这里重载方法可以选择传Model或者是自定义参数,或者是都使用。

第一种方式

1 @{
2     ViewData["Title"] = "Home Page";
3     await Html.RenderPartialAsync("Privacy", new ViewDataDictionary(this.ViewData) { { "name", "abc" } });
4 }

第二种方式

@await Html.PartialAsync("Privacy", new ViewDataDictionary(ViewData) { { "name", "abc" } })

在部分视图中使用父视图传递的参数

1 @* 在页面中使用 *@
2 <p>@ViewData["name"]</p>
3 @* 在JS中使用 *@
4 <script>
5     console.log('@ViewData["name"]');
6 </script>
posted @ 2020-12-29 17:37  刘泽岐  阅读(893)  评论(0)    收藏  举报