栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

Asp.Net Core 中

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Asp.Net Core 中

_ViewStart.cshtml在ASP.NET MVC就存在了,而ASP.NET Core MVC则多了一个_ViewImports.cshtml,这两个都会对View有全域性的影响,重新来了解一下_ViewStart.cshtml及新多的_ViewImports.cshtml的作用。

_ViewStart.cshtml

_ViewStart.cshtml顾名思义,就是在View开始执行之前执行,而且是每一个View,预设ASP.NET Core MVC专案开起来之后,就有产生一个/Views/_ViewStart.cshtml,其内容为:

@{
    Layout = "_Layout";
}

一般在里面设置“母版页”值,当然也可以在里面设置你想设置的东西。

_ViewImports.cshtml

_ViewImports.cshtml是放一些要引用的命名空间,预设的ASP.NET Core MVC专案就有一个/Views/_ViewImports.cshtml,其内容为:

@using [项目命名空间]
@using [项目命名空间].Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

之后的每一个View 就不用再引用这些命名空间,与_ViewStart.cshtml 一样,可以为不同的Controller、不同的Area 增加_ViewImports.cshtml

关于_ViewImports.chtml使用效果范围

如只在Home下添加了一个_ViewImports.cshtml

@using WebApplication2
@using WebApplication2.Models
@using System.Text.Json
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

新增了 System.Text.Json 命名空间,只对 Home 文件夹下的视图有效。

则Test下的视图使用不到该命名空间

如需Test也可以使用需要在有效的范围创建 _ViewImports.cshtml 并在其中写入引用命名空间代码

@inject指令

@inject指令使 Razor 页面可以将服务从服务容器注入到视图。 有关详细信息,请参阅视图中的依赖关系注入。

@using WebApplication2
@using WebApplication2.Models
@using System.Text.Json
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

@inject Itest test

官方文档:
https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-5.0#inject

@inherits指令

@inherits 指令对视图继承的类提供完全控制:

@inherits 类型要继承的类的名称

下面的代码是一个自定义的 Razor 页类型:

namespace WebApplication2
{
    /// 
    /// Web view page
    /// 
    /// Model
    public abstract class CustomRazorPage : Microsoft.AspNetCore.Mvc.Razor.RazorPage
    {
        /// 
        /// Get a localized resources
        /// 
        public string T { get; set; } = "default T";
    }
}

CSHTML:

@inherits CustomRazorPage

@{
    ViewData["Title"] = "Home Page";
}

    

@T

Learn about building Web apps with ASP.NET Core.

(ps:如果不想写"",一般如下 写一个没有TModel参数的类来继承CustomRazorPage)

    /// 
    /// Web view page
    /// 
    /// Model
    public abstract class CustomRazorPage : CustomRazorPage
    {
    }

HTML:

    

default T

Learn about building Web apps with ASP.NET Core.

@model 和 @inherits 可在同一视图中使用。 一般@inherits 直接用于视图导入的 _ViewImports.cshtml 文件中,但是这里演示就直接丢在同一个视图中了。

官方文档:

https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-5.0#inherits

(ps:asp.net mvc 参考 https://www.yuque.com/liujiahao-rr8fu/gx4p4y/kohygc )

@addTagHelpe标记帮助程序

https://www.yuque.com/liujiahao-rr8fu/gx4p4y/zx0ue5

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984333.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号