razorpages_rabeprazole

razorpages_rabeprazole什么是RazorPage我们都知道在Asp.NetMVC中,Razor是其一种视图引擎。而今天我们介绍的RazorPage却是一种web框架,它是一种简化的MVC框架,如果你曾经做过WebForm的开发者,你会发现,RazorPage有点类似WebForm,一个page,一个class。大家或许会有疑惑,我们现在Asp.NetMVC已经很完善了,为何还需要出来一种新型的框架呢?在我看来,MVC确实已经足够强大了,只是因为太强大了,却变成了它的缺点。当我们的业务越来越庞大的时候,你是否觉得你的一

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

什么是RazorPage

我们都知道在Asp.Net MVC中,Razor是其一种视图引擎。而今天我们介绍的Razor Page却是一种web框架,它是一种简化的MVC框架,如果你曾经做过WebForm的开发者,你会发现,Razor Page有点类似Web Form,一个page,一个class。

大家或许会有疑惑,我们现在Asp.Net MVC已经很完善了,为何还需要出来一种新型的框架呢?在我看来,MVC确实已经足够强大了,只是因为太强大了,却变成了它的缺点。当我们的业务越来越庞大的时候,你是否觉得你的一个Controller内部已经凌乱不堪?当我们业务模块划分越多的时候,你是否会为你的Model创建而头疼呢?当我们创建一个新的View的时候,我们需要在MVC层增加1个View,1个Model,修改一个Controller,每当这个时候,我都会疑惑这不是违反Open-Closed Principle(对扩展开放,对修改关闭)了嘛!这个时候我会想起以前的webform,现在不需要了,我们有了Razor Page,一种更轻量级的MVC(我觉得更像MVVM)。

如何创建RazorPage

我们可以通过多种方式来创建Razor Page项目, 当然我还是建议您使用Visual Studio 2017(宇宙最强的IDE)。要创建Razor Page,你需要先安装.Net Core 2.0 SDK及以上版本(现在不区分core了 是.net6),如果要使用Visual Studio来创建,您还必须要更新到15.3版本以上

打开cmd或者powershell工具,先检查下你的dotnet 版本是否为2.0.0

dotnet –version

用Visual Studio 创建是非常方便的(宇宙最强IDE),不过我们必须要先升级到15.3,升级之后选择新建项目->. Asp.Net Core Web应用程序,接下来会弹出一个对话框,让我们选择模板类型:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过上节我们创建了Razor Page项目,直接通过dotnet run或者在vs中F5运行。上文中我们说到,Razor Page的项目中,我们的关注点都在Pages目录下,在VS Explore中,我们看到在Index.cshtml的左边有一个三角箭头,点击就会看到Index.cshtml.cs文件,是不是感觉回到了webform。我们看下代码:

public class IndexModel : PageModel
{ 
     
   public void OnGet()
    { 
   

    }
}

Jetbrains全家桶1年46,售后保障稳定

因为我们的Index页面没有绑定任何数据,所以这里基本上只继承了PageModel,OnGet方法是个约定,查看mvc的源码你会发现它会获取On{handler}{Async}()。比如OnGet,它会在Get Index的时候被执行,我们可以通过这个约定进行数据绑定,这里知道下在Razor Page下HttpMethod也是一个handler,所以Razor Page的处理方式是通过handler进行的。

举个例子,我们在IndexModel中添加一个String类型的属性Message,在OnGet中进行赋值:
public void OnGet()
{

Message = “this is a test!”;
}

然后我们修改下Index.csthml:

@page
@model IndexModel    //这个指令使得cshtml.cs文件中的IndexModel类,在这个Razor Page中有效
@{ 
   
    ViewData["Title"] = "Home page"; //你可以在Razor Page页面中设置ViewData的键值,在_Layout.cshtml模版页面中使用你设置的ViewData
}<div class="row">
   Message : @Model.Message</div>

运行下,如果我们在页面上看到Message : this is a test!,说明赋值成功。

是不是很方便,一般我们的web基本上百分之八十在Get和Post,特别情况会出现其他HttpMethod,当然我们的RazorPage也支持,不过不建议。

现在来说PageModel就是一个Model,Action,HttpMethod的合体,对于Controller使用文件自己的路径+文件名的方式,比如原先我们的HomeController,默认情况下我们可以通过’/’访问也可以通过’/Home/’ 访问,这其实有歧义的,为了避免这种情况,我们必须去修改Route,非常不方便,而现在,我们只需要在Pages主目录下创建相应的Action就可以了,微软提供了Razor Page的对应Url关系,如图:
在这里插入图片描述

参考:
https://mp.weixin.qq.com/s?src=11&timestamp=1632386402&ver=3331&signature=uYeN7R9*G0W9icH3ziJ8hPd5nu5olN1q5dTvrgWjloGdmZwdGq0V5h3FTZ73XRUWX7gnoNbKIyo4d1WhR16zLItZEva5jVthEFH2Nkz-sEMc9xOHDnLV14iE4bW0iZQs&new=1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/223066.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python-opencv图像处理:sobel算子

    python-opencv图像处理:sobel算子Sobel原理:https://blog.csdn.net/zfjBIT/article/details/86655444函数原型:”’Sobel算子Sobel算子依然是一种过滤器,只是其是带有方向的。在OpenCV-Python中,使用Sobel的算子的函数原型如下:dst=cv2.Sobel(src,ddepth,dx,dy[,dst[,ksize[,s…

  • 思维导图☆三招十八式「建议收藏」

    思维导图☆三招十八式「建议收藏」思维导图三招十八式http://www.795.com.cn/wz/55075.html思维导图三招十八式之一:思维导图进行资料整理学习力的革命系列暂时结束,从今天开始转载三招十八式系列,这个系列都是讲思维导图的各种应用技巧。为了让大家知道具体是什么,我把文字版放在下面,看完后,觉得有用,请下载完全版,后面的附件就是  写在前面的话  关于思维导图软件的使用,一般来说是很简单的,这些软件的使用

    2022年10月21日
  • 使用python+django+twistd 开发自己的操作和维护系统的一个

    使用python+django+twistd 开发自己的操作和维护系统的一个

  • jQuery操作table tr td

    jQuery操作table tr td

  • 更新本地DNS缓存列表[通俗易懂]

    更新本地DNS缓存列表[通俗易懂]更新本地DNS缓存列表当我们以域名形式访问过目标网站后,该网站的域名和IP地址对应关系就会自动保存到本地工作站的DNS缓存列表中,日后IE浏览器会优先访问DNS缓存列表中的信息,不过一旦此时目标站点的域名和IP地址对应关系发生变动的话,DNS缓存列表中的对应解析记录不会跟着同步变化,那么日后我们再次以域名形式访问目标站点时就容易发生DNS解析不成功的故障。这个时候,…

  • 盘点购物分享系统,有兴趣的来看看哦

    盘点购物分享系统,有兴趣的来看看哦最近蘑菇街,美丽说等购物分享的火爆。社会化电子商兴起。很多站长看到了市场。你是不是也想做个这类的网站倒是可以接着往下看。现在主流的购物分享系统有方维,拼品,拼图秀,爱图谱,乐兔淘,花世界等。1.方维购物分享系统:现在网上用的较多购物分享系统,比较像蘑菇街的类型。功能较全面,操作起来就是有点复杂,搞了好久才搞定她,不过你可以再网上下载说明书。开发的配套也…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号