• 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>
  • 相关阅读:
    【POJ 2923】Relocation(状压DP+DP)
    【HDU 2955】Robberies(DP)
    【POJ 2250】Compromise(最长公共子序列LCS)
    【URAL 1917】Titan Ruins: Deadly Accuracy(DP)
    【POJ 1273】Drainage Ditches(网络流)
    HDU2896 病毒侵袭[AC自动机]
    1516. 棋盘上的车[组合数学][状态压缩]
    [HAOI2012] 容易题[母函数]
    [HAOI2012] 高速公路
    [HAOI2012]Road
  • 原文地址:https://www.cnblogs.com/liuzeqi/p/14207842.html
Copyright © 2020-2023  润新知