首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET Core Razor Pages 初探

后来才发现这是ASP.NET Core框架新推出的Razor Pages技术。 什么是Razor Pages “Razor Pages 使编码更加简单更加富有生产力”这是微软说的==!。...asp-page属性不是html自带的属性,显然这是Razor Pages为我们提供的。...在后台方法进行页面导航 当保存成功后需要使页面跳转到列表页面,可以使用RedirectToPage等方法进行跳转,OnPostSave方法的返回值类型也改成IActionResult,这就非常mvc了,...总结 通过上的简单示例,对Razor Pages有了大概的了解。Razor Pages本质上对MVC模式的简化,后台模型聚合了Controller跟Model的的概念。...并且提供了一些内置html属性实现绑定技术。有人说Razor Pages是WebForm的继任者,我倒不觉得。个人觉得它更像是MVC/MVVM的一种混合。

2K20

ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证

前文索引: ASP.NET Core教程【一】关于Razor Page的知识 在layout.cshtml文件中,我们可以看到如下代码: RazorPagesMovie 这段代码中用到asp-page这样的一个特有属性,这是razor page特有的, 这是一个锚点属性,它的值将被编译到a标签的href属性上; 跟多的时候,我们会像下面这样使用锚点属性.../Index"); } }} 一般我们在OnGet方法中初始化页面需要的状态数据; 这个页面没有状态数据需要初始化,所以我们就不用做任何事情 Page()方法返回一个PageResult...表单提交之后,OnPostAsync方法被执行, 如果提交的数据,在绑定到Movie对象的过程中,产生了异常,那么Page方法会被重新执行,等于刷新了一遍页面; 大部分数据验证的工作是在客户端通过JS...接下来看看页面代码: @page@model RazorPagesMovie.Pages.Movies.CreateModel@{ ViewData["Title"] = "Create";}<h2

1.6K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板

    大家知道近期Asp.Net Core2.0发布了,微软也推出了Razor Page来作为默认的Asp.Net Core Web项目,但一开始并没有提供Scaffolding Template(后简称ST...)功能,使我们每次对于一个Model需要进行4-5个页面和PageModel的编写,代码量比Asp.Net MVC多了不少,好在ST及时出现,不过这次并没有结合到VS中,我们需要通过添加一个生成包及CMD...我们可以看到它自动创建了相应的View和PageModel。 虽然没有MVC那么便利,但至少也节约了我们不少时间。.../Index"); } 可以看到 它使用了Blog作为实体类的集合名了,但在Step 3中,我使用的是Blogs,这应该是个bug,想提交的,但没有找到相应的项目。...写在最后 后天就是伟大的祖国生日了,大家节日快乐!明天去HK迪士尼 好期待,嘿嘿。 后面我会把用Razor Page遇到的问题总结放上来,非常看好它,相信会越来越火的。

    1.1K60

    Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page

    跟之前mvc不同的是,我们不再看到model,view,controller目录了,取而代之的是Pages目录,这个就是我们的razor Page的主要工作目录。...与命令方式创建的一致。 QuickStart Razor Page Hello Razor Page 通过上节我们创建了Razor Page项目,直接通过dotnet run或者在vs中F5运行。...上文中我们说到,Razor Page的项目中,我们的关注点都在Pages目录下,在VS Explore中,我们看到在Index.cshtml的左边有一个三角箭头,点击就会看到Index.cshtml.cs...我们看下代码: public class IndexModel : PageModel { public void OnGet() { } } 因为我们的Index页面没有绑定任何数据...’/’访问也可以通过’/Home/’ 访问,这其实有歧义的,为了避免这种情况,我们必须去修改Route,非常不方便,而现在,我们只需要在Pages主目录下创建相应的Action就可以了,微软提供了Razor

    2K60

    ASP.NET Core 5.0 MVC中的 Razor 页面 介绍

    如果没有 HTML 或 Razor 标记,则 Razor 会发生运行时错误。 标记可用于在呈现内容时控制空格: 仅呈现 标记之间的内容。...= people[i]; @:Name: @person.Name } 如果 @: 代码中没有,则 Razor 会生成运行时错误。...@文件中的额外字符 Razor 可能会导致在块中后面的语句中出现编译器错误。 这些编译器错误可能难以理解,因为实际错误发生在报告的错误之前。...@section指令与MVC 和 Razor 页面布局结合使用,以使视图或页面能够在 HTML 页面的不同部分中呈现内容。 有关详细信息,请参阅 ASP.NET Core 中的布局。...为委托封装的方法的参数指定动态类型。 将对象类型指定为委托的返回值。 该模板与 Pet(具有 Name 属性)的 List 一起使用。

    46210

    正式开始学习ASP.NET Core 6 Razor Pages 介绍

    ASP.NET Webforms与Razor Pages ASP.NET Core Razor Pages框架是一种新技术,可以通过清晰地分离关注点来更快,更高效地构建以页面为中心的Web应用程序。...Razor Pages是在.NET Core 2.0中引入的。它轻巧,灵活,并为开发人员提供了对呈现的HTML的完全控制。....cshtml.cs-包含服务器端C#代码,用于处理页面事件并提供模板所需的数据。...这不仅导致不必要的复杂性,而且违反了编程的基本原则,例如单一职责原则和开放/封闭原则。,让代码显得臃肿。 另一方面, Razor Pages 只是一对文件-一个显示模板和相应的PageModel类。...无论您使用ASP.NET Core MVC还是Razor Pages来构建Web应用程序,从性能的角度来看都没有什么区别。

    3.8K10

    dotnet scaffold – .NET 的下一代内容创建

    如果您选择了错误的选项,您可以随时使用导航下的“Return”返回上一个选择。输入 Razor Pages 选项后,您将看到以下选项。 现在,dotnet scaffold 提示应调用特定的脚手架。...使用 Entity Framework 将值保存到所选的数据库提供程序中。让我们首先运行空脚手架,然后运行 CRUD 脚手架。空脚手架将生成一个带有关联代码文件的新 Razor 页面。...然后它将提示我们输入要创建的 Razor 页面的名称。将其命名为 About 并按下回车键。您将看到命令正在运行,然后您应该会看到下面的结果。...接下来的屏幕将提示您输入数据库上下文的名称。在本例中,将其命名为 ContactDbContext 并按下回车键。根据惯例,建议此值以 DbContext 结尾,但这不是必需的。参见下图。...使用此页面,您可以创建新联系人并管理现有联系人。添加一些联系人后,它们将显示在此页面上,如下所示。 现在您有一个可以管理联系人列表的 ASP.NET Core Razor Pages Web 应用。

    8700

    (0630)Blazor系列:抽离C#代码

    原FetchData.razor: 原FetchData.razor 提取C#代码后代码截图: 提取C#代码后代码截图 页面展示不变: 页面展示不变 接着来看ComponentBase,先把partial...class里面的代码复制下来,接着建立一个新class取名为FetchDataBase.cs,将刚刚的代码贴上后稍做修改,再删除FetchData.razor.cs这个partial class,因为两种模式不能并存...首先建立Models文件夹,建立PostModel类型,里面很简单只有3个属性,接着在Pages文件夹建立Post.razor跟PostBase.razor.cs,最后将NavMenu.razor的连接留下一个...添加验证 验证错误提示 但如果不喜欢验证机制预设的CSS样式呢?Blazor也提供了定制化的方法。...调用的方法GetValidationMessages有在fieldIdentifier取得任何信息,代表这是错误的字段值,没有则是正确字段值,这就是Blazor帮我们定制化Form的作法。

    1.8K20

    ASP.NET Core教程【三】实体字段属性、链接标签、并发数据异常、文件上传及读取

    前文索引: ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证 ASP.NET Core教程【一】关于Razor Page的知识 实体字段属性 再来看看我们的实体类...href属性,现在不用了,可以分开写,代码更优雅; 上面的代码,编译后生成的href属性的值是这样的: http://localhost:5000/Movies/Details?...如果这个时候你请求这个地址: http://localhost:5000/Movies/Details 并没有传入ID的值,那么服务器会返回404, 如果你的设计是希望ID是一个可选的传入参数,那么你可以把...razor page的代码(只提供一部分表单域) <label asp-for="FileUpload.UploadPublicSchedule" class...FileHelpers.ProcessFormFile(FileUpload.UploadPublicSchedule, ModelState); 其中ModelState是PageModel特有的属性 在本示例中,用于给页面添加错误信息

    1.6K60

    Blazor入门:ASP.NET Core Razor 组件

    本文接下来所指的组件都是非页面组件。 .razor 文件中,开头有 @page 标记的,就是页面组件,没有的就是非页面组件。 当然两者并没有严格的区分。...组件类 每个 .razor 文件,在编译后会生成一个类,称为组件类。 生成的类的名称与文件名匹配。 因此,每个 .razor 文件,必须以大写字母开头,按照类名命名规范定义文件名称。...路由与路由参数 页面组件使用 @page 设置此页面的访问地址,这里没有 Controller 和 Action 的分层和路由导航(相对地址),直接是一个绝对的访问地址,并且全局唯一。...CaptureUnmatchedValues 属性允许参数匹配所有不匹配任何其他参数的特性。...组件引用提供了一种引用组件实例的方法,使用 @ref 可以实现引用对参数的引用。

    2.8K20

    快速入门:用 Blazor 构建一个简单的计数器示例

    理解项目结构 创建完成后,你会看到以下重要的文件和文件夹: Pages 文件夹:存放页面组件,例如 Index.razor、Counter.razor。...构建计数器示例 (1)修改 Counter.razor 打开 Pages/Counter.razor 文件,默认代码如下: @page "/counter" 计数器 当前计数...添加一个新页面 (1)创建 Pages/HelloWorld.razor 右键点击 Pages 文件夹,选择 添加 > Razor 组件,命名为 HelloWorld.razor。...Blazor 提供了强大的功能,支持用 C# 开发现代 Web 应用,非常适合有 .NET 背景的开发者快速上手。...如果你对 Web 开发感兴趣,可以继续深入学习 Blazor 的高级功能,例如状态管理、性能优化和与 JavaScript 的互操作。

    5800

    .NET 云原生架构师训练营(模块二 基础巩固 MVC终结点)--学习笔记

    MVVM ASP.NET Core 中的 Razor Pages 介绍:https://docs.microsoft.com/zh-cn/aspnet/core/razor-pages/?...view=aspnetcore-5.0&tabs=visual-studio Razor Pages 没有 Controller,Model 中可以包含方法 ?...view=aspnetcore-5.0 什么是模型绑定 控制器和 Razor 页面处理来自 HTTP 请求的数据。例如,路由数据可以提供一个记录键,而发布的表单域可以为模型的属性提供一个值。...Razor在方法参数和公共属性中向控制器和页面提供数据。 将字符串数据转换为 .NET 类型。 更新复杂类型的属性。 来源有哪些 [FromQuery] -从查询字符串获取值。...[Range]:验证属性值是否在指定的范围内。 [RegularExpression]:验证属性值是否与指定的正则表达式匹配。 [Required]:验证字段是否不为 null。

    2.5K10

    .NET 云原生架构师训练营(模块二 基础巩固 MVC终结点)--学习笔记

    /core/razor-pages/?...view=aspnetcore-5.0&tabs=visual-studio Razor Pages 没有 Controller,Model 中可以包含方法 21.jpg ASP.NET Core...view=aspnetcore-5.0 什么是模型绑定 控制器和 Razor 页面处理来自 HTTP 请求的数据。 例如,路由数据可以提供一个记录键,而发布的表单域可以为模型的属性提供一个值。...Razor在方法参数和公共属性中向控制器和页面提供数据。 将字符串数据转换为 .NET 类型。 更新复杂类型的属性。 来源有哪些 [FromQuery] -从查询字符串获取值。...[Range]:验证属性值是否在指定的范围内。 [RegularExpression]:验证属性值是否与指定的正则表达式匹配。 [Required]:验证字段是否不为 null。

    2.6K11

    Dotnet9网站回归Blazor重构,访问速度飞快,交互也更便利了!

    对于小型项目或者只有少量页面的应用来说,Razor Pages可以提供更快的开发速度和更简洁的代码结构,这是站长当时从MVC重构成Razor Pages的主要选择理由。...其次,Razor Pages在SEO(搜索引擎优化)方面具有一定的优势。由于Razor Pages将视图和处理逻辑封装在同一个页面中,搜索引擎可以更容易地理解和索引页面的内容。...相比于Razor Pages和MVC,Blazor提供了一种全新的开发模式,具有许多独特的优势和适用场景。 首先,Blazor提供了真正的前端开发体验。...服务端模式:与传统的基于HTTP请求的页面刷新相比,Blazor使用SignalR连接来实现实时数据更新和双向绑定,可以提供更快速和流畅的用户体验。...Razor Pages(MVC)与Blazor都使用的Razor语法,所以理论上切换是无缝的,核心代码改动不大,项目代码文件结构对比看下面截图,不再赘述,有兴趣看源码吧,两个版本代码都在。

    65330

    ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

    页面输出特殊字符串   与在ASPX试图引擎中类似,如果要输出特殊字符串,还是借助HtmlHelper类提供的扩展方法来实现。   ...*@ 1.6 Razor中转换数据类型   在Razor中提供了很多方便我们进行数据类型转换的方法以及类型判断的方法,如下图所示: ?   ...正是因为我们建立了这种URL结构的识别规则,,所以能够识别出 Controller是home, action是index, id没有则为默认值""。   ...由于网站中,并没有Home-Index这个Controller,所以也就出现了刚刚那个404页面。...不可以重名,否则会发生错误: “路由集合中已经存在名为“Default”的路由。路由名必须是唯一的”。

    1.8K30

    【译】.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容

    新的Razer扩展 Razor组件使用Razor语法编写,但编译方式与Razor页面和视图不同。为了明确哪些Razor文件应该编译为Razor组件,我们引入了一个新的文件扩展名:.razor。...取而代之的是单个Razor页面/Pages/Index.cshtml,使用Html.RenderComponentAsync() HTML帮助器预呈现应用程序内容。...尽可能使用EventCallback,因为它是强类型的并且可以向组件的用户提供更好的反馈。当没有传递给回调函数的值时,也使用EventCallback。...其中一些具有有用的分析逻辑(例如,InputDate和InputNumber将不可解析的值注册为验证错误,这样可以优雅地处理它们)。相关字段还支持目标字段的可空性(例如,int?)。...这是第一个为ASP.NET Core公开发布的gRPC预览,并没有实现gRPC的所有功能,但是我们正在努力使ASP.NET Core提供所提供得最佳的gRPC体验成为可能。

    22.7K10

    【ASP.NET Core 基础知识】--MVC框架--Views和Razor语法

    以下是一般的步骤: 确保存在Views文件夹: 在ASP.NET Core项目中,确保在项目的根目录下有一个名为Views的文件夹。如果没有,你可以手动创建。...这个映射过程是自动进行的,ASP.NET Core框架根据请求中的数据类型、名称和模型对象的属性进行匹配。...在模型的属性上设置默认值,可以确保即使没有提供相应的数据,模型属性也有一个合理的初始值。...结合 使用JavaScript中的Ajax请求与后端的Razor动作方法交互是常见的需求。...视图的结构和布局 确保视图的结构清晰,布局简单。复杂的嵌套结构可能导致性能下降。 压缩输出 在生产环境中,启用输出压缩可以减小传输的数据量,加快页面加载速度。

    54620

    ASP.NET Core教程【一】关于Razor Page的知识

    关键文件和目录结构 按照asp.net core WEB应用程序向导,创建一个工程之后 你会发现如下几个目录和文件 wwwroot:放置网站的静态文件的目录 Pages:放置razor页面的目录 appsettings.json...Razor页面都会用到的Layout属性, _ViewImports.cshtml 负责设置所有页面都会用到的指令,比如引入什么类库等 _ValidationScriptsPartial.cshtml...Razor页面的PageModel类 好,我们现在看看怎么通过数据库上下文把数据从数据库中拿出来 在Pages目录下,创建一个Razor页面 在相应的cshtml.cs文件中,撰写如下代码: using...; Razor页面继承自PageModel类,按照约定,类名遵从[PageName]Model这样的命名方式 构造函数通过依赖注入获得数据库访问上下文实例; 关于Razor Page的页面代码 我们再来看看...和model.Movie[0] 的值是 null 或者empty时,不会报异常; 关于model指令 @model RazorPagesMovie.Pages.Movies.IndexModel 这个指令使得

    2.6K80
    领券