在ASP.NET CORE Razor Pages Web Application中使用MVC模式添加Controller和View (Razor 视图)

问题

在使用Razor Pages Web 应用程序时,发现这个比MVC模式更加方便快捷,代码也更加简洁直观。而且是基于MVC的,那么就可以使用Controller、View了才对。但是在创建验证码的时候需要访问Controller返回验证码图片字节,但是一直不成功。

解决方法

  1. 在visual studio 2017下模仿MVC模式创建Controllers、Views文件夹
  2. 创建controller,并添加添加你想要的视图或不要
  3. 在配置cs文件startup.cs中,找到Configure方法,将其中代码app.UseMvc();改为如下
app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

这里是为mvc配置了路径映射,这样就不会找不到controller了。

再问

  • 问题: 既然可以在Razor Pages Web应用程序中使用MVC模式,那么如果同时在Views和Pages中都存在的页面,.NET Core是去访问哪一个呢?

  • 实践:

    1. 创建TestController控制器,生成视图:Views/Test/Index.cshtml
    2. 创建Razor Page,路径为Pages/Test.cshtml
    3. 启动,访问/Test,得到的是Razor页面,访问/Test/Index,得到的是MVC页面
  • 结果:当路径同时满足两种模式时,会得到Razor Page,即Pages中的页面

猜你喜欢

转载自www.cnblogs.com/ollyliang/p/9487289.html