学习Razor Pages笔记

学习内容:https://learnrazorpages.com


Razor页面都是以.cshtml结尾,其中内容页面必须具有以下三个特征:

1,文件名首位不能是下划线

2,文件扩展名为.cshtml

3,文件的第一行是 @page

内容页面可以指定一个布局文件,但不是必须的。页面可以包含代码块、HTML、Javascript 和 内联Razor代码。

Razor代码块被@{ }包裹,内部为标准C#代码。

PageModel,推荐使用页面模型,页面模型通过 @model  模型名称 引入页面中。


不同类型的Razor文件

上述内容页面是可浏览的,以下划线开头的文件为不可浏览的页面,以下划线开头的页面通常为局部页面,其中三个具有特殊功能。

_Layout.cshtml 所有内容页面的模板,网站页面相同的部分放在此文件中,一般包括header、footer、导航栏等。

_ViewStart.cshtml

_ViewImports.cshtml


局部视图

局部视图或页面不参与路由,因此可以使用任何不生成页面模型的模板创建局部视图。

局部视图可以以很多方式引入都主页面中,ASP.NET Core 2.1 版本以后推荐使用 局部标签助手:

<partial name = "_MenuPartical"/>

name属性是不带扩展名的局部视图文件名称,或其路径,此属性值区分大小写。

一般局部视图文件不用写路径,框架会以特定顺序自动搜索。

局部视图不能有@page指令,但可以使用@model XXX,模型可传递进入局部视图。


ViewImports 文件

_ViewImports.cshtml文件提供集中添加指令的机制,避免每个页面单独添加。支持如下指令:

@addTagHelper

@inherits

@namespace

@inject

@model

@removeTaghelper

@tagHelperPrefix

@using

其中@addTagHelper, @removeTagHelper 和 @tagHelperPrefix 指令与 Tag Helpers的管理相关。

@namespace 指定被ViewImport影响的页面的命名空间,每个文件只能有一个@namespace指令

@inject 指令与依赖注入相关

@model 指定模型

@using 添加其他命名空间

_viewImport.cshtml文件的数量没有限制,可以存在多个,其中@addTagHelper, @removeTagHelper,@inject, @using指令会累加,其他指令会覆盖。


ViewStart 文件

_ViewStart.cshtml文件在每个Razor页面执行前执行,它影响同级文件夹及下级文件夹中的所有Razor页面。

Razor Pages的更多相关文章

  1. [译]ASP.NET Core揭秘 - Razor Pages

    原文 什么是Razor Pages? Razor pages是ASP.NET Core 2.0的新特性,它被设计用来更快的开发页面,比传统的MVC模式更便捷. 创建项目 为了使用Razor Pages ...

  2. 学习 razor pages 指南

    这是一个系列,我打算把此人的系列翻译一下,学习技术的同时,顺便提高一下英文水平. 原文地址:https://www.learnrazorpages.com/ 前言 欢迎来学习 razor pages ...

  3. asp.net core 的 razor pages 如何使用ajax调用后台方法

    Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法. 当网页被写入浏览器时,基于服务器的代码能够创建动态内容. 在网页加载时,服务器在向浏览器返回页面 ...

  4. Razor Pages with ASP.NET Core 2

    With ASP.NET Core 2 we get another way of building web applications. It’s one of those new things th ...

  5. ASP.NET Core Razor Pages

    Razor 页面是Asp.Net Core2.0新增的一个功能.Razor 页面是 ASP.NET Core MVC 的一个新特性,它可以使基于页面的编码方式更简单高效. 环境:vs2017 .net ...

  6. Introduction to Razor Pages in ASP.NET Core

    https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/ 从ASP.NET Core 2.0.0版本之后,添加了新的特性Razor p ...

  7. 【翻译】介绍 ASP.NET Core 中的 Razor Pages

    介绍 ASP.NET Core 中的 Razor Pages 原文地址:Introduction to Razor Pages in ASP.NET Core         译文地址:介绍 asp. ...

  8. ASP.NET CORE RAZOR :在 ASP.NET Core 中开始使用 Razor Pages

    来自:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/razor-pages-start 系统必备安装以下组件:. ...

  9. 使用.net core基于Razor Pages开发网站一些工作笔记

    本文是在实践工作中遇到的一些问题记录,并给出是如何解决的,.net core已经升级到3.0版本了,其实在项目中很早就已经在使用.net core来开发后台接口了,正好有个网站项目,就使用了Razor ...

  10. 基于ASP.NET Core 3.0快速搭建Razor Pages Web应用

    前言 虽然说学习新的开发框架是一项巨大的投资,但是作为一个开发人员,不断学习新的技术并快速上手是我们应该掌握的技能,甚至是一个.NET Framework开发人员,学习.NET Core 新框架可以更 ...

随机推荐

  1. Linux:linux下解压*压缩tar.xz、tar、tar.gz、tar.bz2、tar.Z、rar、zip、war等文件方法

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 ------------------------------------------ 这 ...

  2. 每日单词 —— cut to the chase

    cut to the chase: 词面意思--切奶酪 是美国俚语--开门见山:直奔主题 看一看相关的例句或者电影读白吧! 1. - 嫌疑人:Shall we cut to the chase ? 侦 ...

  3. Thymeleaf模板引擎语法

    th:text    用于显示值 th:object      接收后台传来的对象 th:action      提交表单 th:value       绑定值 th:field         绑定 ...

  4. STM32笔记四

    1.时钟振荡器:产生时钟信号送给单片机内部各电路,并且控制这些电路,使它们有节拍的工作. 2.ROM是一种具有存储功能的电路,断电后信息不回丢失.RAM也是一种存储电路,断电后信息丢失. 3.串行通信 ...

  5. 章节1-Grafana Dashboard的简单应用(2)

    目录 使用Grafana创建可视化Dashboard 1. Add data sources - Prometheus 2. 导入 Dashboard 模板 2.1 Node Exporter for ...

  6. WIN10 报错及解决方法

    你的电脑/设备需要修复,无法加载操作系统,原因是关键系统驱动程序丢失或包含错误 \windows\system32\drivers\zklvv.sys 错误代码:0XC000007b 解决方法: 用U ...

  7. vue实现menu菜单懒加载

    本文将在vue+element ui项目中简单实现menu菜单的懒加载. 最近接到这样的需求:菜单的选项不要固定的,而是下一级菜单选项需要根据上级菜单调接口来获取.what? 这不就是懒加载吗?翻了一 ...

  8. YARN学习总结之架构

    一.yarn产生背景 1) 源于MRv1的缺陷:扩展性受限.单点故障.难以支持MR之外的计算框架: 2) 多计算框架各自为战,数据共享困难,资源利用率低: MR: 离线计算框架 Storm:实时计算框 ...

  9. 在Java中,负数的绝对值竟然不一定是正数!!!

    绝对值是指一个数在数轴上所对应点到原点的距离,所以,在数学领域,正数的绝对值是这个数本身,负数的绝对值应该是他的相反数. 这几乎是每个人都知道的. 在Java中,想要获得有个数字的绝对值,可以使用ja ...

  10. element取消全局loading

    背景 前两天在开发一个管理后台项目时, 遇到了一个问题,后端接口返回特别慢,由于该接口调用的是第三方API,无法通过后端去处理.此时想到用loading动画,但随之而来也产生了不少问题, 在此记录一下 ...