zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Leetcode-113 Path Sum II(路径总和 II)
    Leetcode-946 验证栈序列(Validate Stack Sequences)
    Leetcode-945 Minimum Increment to Make Array Unique(使数组唯一的最小增量)
    UVa-10129 Play on Words
    UVa-10305 Ordering Tasks
    UVa-816 Abbott's Revenge
    UVa-1103 Ancient Messages
    种子填充(flood fill)
    内存池
    Leetcode-942 DI String Match(增减字符串匹配)
  • 原文地址:https://www.cnblogs.com/liuzeqi/p/14207842.html
Copyright © 2011-2022 走看看