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

ASP.NET Core Razor Pages 初探

使用asp-page进行页面间导航 列表页面上有几个按钮,比如新增、删除等,点击的时候希望跳转至不同的页面,可以使用asp-page属性来实现。...asp-page属性不是html自带的属性,显然这是Razor Pages为我们提供的。...显然这里asp-page最后会翻译成一个url,看看生成的页面源码: Add 跟我们想的一样,最后asp-page...小小的吐槽下微软:像asp-page这种封装我是不太喜欢的,因为它掩盖了html、http工作的本质原理。这样会造成很多同学知道使用asp-page怎么写,但是换个框架就不知道怎么搞了。...只是Razor Pages毕竟是服务端渲染,不能进行实时双向绑定而已。最后,说实话通过简单的体验,Razor Pages开发模式跟MVC模式相比并未有什么特殊的优点,不知道后续发展会如何。

2K20

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

; Razor页面继承自PageModel类,按照约定,类名遵从[PageName]Model这样的命名方式 构造函数通过依赖注入获得数据库访问上下文实例; 关于Razor Page的页面代码 我们再来看看...) asp-page="....引擎可以把上面这些HTML代码转成C#代码或者转成Razor过度代码; 当一个 @ 符号后面跟的是Razor保留关键字的话,他会被转义成Razor过度代码,否则会被转义成C#代码; 这是在编译期完成的工作...,所以不会影响运行期的执行效率; 关于page指令 @page指令使得这个页面变成了一个ASP.NET MVC的Action 这个指令必须是在Razor Page的第一个指令 关于违法访问的处理 来看看下面这行代码...= "_Layout"; } 注意,在这里我们并没有详细讲链接标签: asp-page=".

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

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

    前文索引: ASP.NET Core教程【一】关于Razor Page的知识 在layout.cshtml文件中,我们可以看到如下代码: asp-page="/Index" class="navbar-brand...">RazorPagesMovie 这段代码中用到asp-page这样的一个特有属性,这是razor page特有的, 这是一个锚点属性,它的值将被编译到a标签的href属性上; 跟多的时候,我们会像下面这样使用锚点属性...完成的 但是我们也不能完全依赖JS(防止模拟浏览器,恶意提交) 客户端提交上来了一个表单域是一个日期字符串,在绑定到对象属性的时候,可能产生异常,如果产生了异常,ModelState.IsValid就非真...value="Create" class="btn btn-default" /> asp-page...");}}  在razor page中也是一个特殊标签, 这个标签会自动添加一个反伪造令牌,用于防止跨站脚本攻击; asp-validation-summary和

    1.6K50

    Day 04 Compoent及路由介紹

    打开Counter.razor,最上面是@page指示词,这个稍后再说。...Index.razor和Counter.razor 两个Counter独立 currentCount定义的方式跟页面呈现就是一种模型绑定(model binding),意思是数据跟页面有绑定关系,.NET...FetchData.razor 我们点一下GetForecastAsync()方法并按下F12,可以看到这个方法回传的就是5个随机产生的天气数据阵列,html里面有判断forecasts是否为null,...原因就是@page指示词,这个指示词相当于传统的路由,可以看到Index.razor的@page 为"/",表示这是首页,Counter.razor及FetchData.razor也有相应的@page指示词...左侧菜单 左侧菜单在html呈现为a标签1 左侧菜单在html呈现为a标签2 回到MainLayout.razor,可以看到@Body指示词,这就是其他Component会放置的地方,可以说是种placeholder

    1.3K30

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

    下面是该预览版的更新列表: Razor组件改进: 单项目模板 新的Razer扩展 Endpoint路由集成 预呈现 Razor类库中的Razor组件 改进事件处理 Forms & validation...预呈现 默认情况下,Razor组件项目模板执行服务端预渲染。也就是说当用户浏览您的应用程序时,服务器将对您的Razor组件执行初始化渲染,并将结果作为纯静态HTML传递给浏览器。...取而代之的是单个Razor页面/Pages/Index.cshtml,使用Html.RenderComponentAsync() HTML帮助器预呈现应用程序内容。...Razor组件在HTML中是完全呈现的。 Razor类库中的Razor组件 现在可以将Razor组件添加到Razor类库中,并使用Razor组件从ASP.NET核心项目引用它们。...编译器处理将委托转换为EventCallback的过程,并将执行其他一些操作,以确保呈现过程具有足够的信息来呈现正确的目标组件。

    22.7K10

    Blazor入门:ASP.NET Core Razor 组件

    关于组件 .razor 文件分为页面(带@page)和组件(不带@page,或者说页面组件和非页面组件。...本文接下来所指的组件都是非页面组件。 .razor 文件中,开头有 @page 标记的,就是页面组件,没有的就是非页面组件。 当然两者并没有严格的区分。...需要使用 [Parameter] 来修饰成员,才能捕获 @page "/test/{Id}"。 另外,理由参数是 string 类型,不能自动转为数值类型。...被多个组件使用,不同组件要呈现不一样的内容; 要根据父组件的配置,显示子组件; 组件 A 要求使用到的组件 B,显示其传递的内容; 简单来说,就是将页面内容作为复杂类型传递给另一个组件,要求这个组件显示出来...属性展开 属性展开是使用字典类型表示一个 Html 标签的多个属性。

    2.8K20

    Blazor学习之旅(4)数据共享

    每个组件都可以包含 HTML 和 C# 代码的混合。组件是通过使用 Razor 语法编写的,其中的代码是用 @code 指令标记的。其他指令可用于访问变量、绑定到值以及实现其他呈现任务。...编译应用时,HTML 和代码将编译为组件类。组件一般被编写为扩展名为 .razor 的文件。 关于数据共享 Blazor 包含多种在组件之间共享信息的方法。...在组件中设置级联参数的值时,其值将自动提供给所有子组件。 在父组件中,使用  标记指定将级联到所有子组件的信息。此标记作为内置的 Blazor 组件实现。在该标记内呈现的任何组件都将能够访问该值。...--this is CascCompSample.razor--> @page "/cascparamsample" This is the sample page razor--> @page "/cascparamsample" This is the sample page <CascadingValue

    42620

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

    class里面的代码复制下来,接着建立一个新class取名为FetchDataBase.cs,将刚刚的代码贴上后稍做修改,再删除FetchData.razor.cs这个partial class,因为两种模式不能并存...PostBase 而Post.razor用了EditForm这个Component,编译过后相当于html的form元素,里面还有3个input元素,Blazor也有提供相对应的Input Component...,可以从官方文件看到分别编译后的html元素。...替换Model为EditContext 这时候再提交表单一次,可以看到textarea的红色外框消失了,字体也变成text-danger的红色,而正确的字段值则是变成text-primary的蓝色。...调用的方法GetValidationMessages有在fieldIdentifier取得任何信息,代表这是错误的字段值,没有则是正确字段值,这就是Blazor帮我们定制化Form的作法。

    1.8K20

    如何使用 Blazor 框架在前端浏览器中导入和导出 Excel

    一个常见的用例是将现有的 Excel 文件导入 Blazor 应用程序,将电子表格数据呈现给用户,并且能够允许进行任何更改,最后将该数据导出回 Excel 文件或将其保存到数据库。...在此,我们将要编辑 Index.razor 文件以设置 HTML 的代码隐藏: @page "/" @using SpreadJS_Blazor_Lib Hello, SpreadJS!...”文件夹下编辑 Index.razor 中的代码: (Index.razor) @page "/" @using SJS_Blazor_Lib Hello, SpreadJS!...实现类似于基本的 SpreadJS Blazor 代码,但我们需要编辑 Index.razor 文件以添加一些用于设置值和打开 Excel 文件的代码: @page "/" @using SpreadJS_Blazor_Lib.../2.0.0/FileSaver.min.js"> 要让此代码在页面上运行,我们需要将用于导出的按钮添加到 Index.razor 代码中: @page "/" @using SpreadJS_Blazor_Lib

    36920

    Blazor学习之旅(7)布局

    默认Blazor布局 如果从 Blazor 项目模板创建了 Blazor 应用,则该应用的默认布局为 Shared/MainLayout.razor 组件。...查看MainLayout.razor组件,我们可以发现: (1)布局组件必须继承于LayoutComponentBase类 (2)必须要在引用组件的位置添加@Body指令 (3)不包含@page指令因为它不直接处理请求...使用Blazor布局 这里我们假设在另一个组件中使用上面编写的那个Blaozr布局,通过@layout指令即可快速应用布局: @page "/FavoritePizzas/{favorite}" @layout...pizza is: @Favorite @code { [Parameter] public string Favorite { get; set; } } 下图说明了组件和布局如何一起呈现最终的...HTML效果: 通常在Blazor应用中,我们会直接在App.razor中设置默认的布局组件,这样就可以将布局应用于该Blazor应用中的所有组件。

    41730

    Pro ASP.NET MVC –第五章 使用Razor「建议收藏」

    我们现在只留下我们最关心的并且要呈现给用户的数据。所有的html标记都已经删除。...你应当记住,虽然MVC框架并没有要求正确使用MVC模式,但是我们还是应该在设计和编码时遵循MVC模式。 插入数据值 使用Razor表达能做的最简单的事情就是向标记语言中插入数据。...如果你运行程序,那么在浏览器中,你会看到DIV的特性的值已经正确地呈现出 False和True对应Viewbag的布尔值,请注意Razor已经对值为NULL的属性做了特别的处理,因此data-supplier...在Razor代码片段中,你可以通过HTML和Razor表达式使用HTML元素和视图中的数据值。...我们还为你展示了如何通过视图模型对象和Viewbag对象引用控制器传递过来的数据,此外我们还介绍了如何使用Razor表达式呈现数据。

    2.9K20
    领券