Asp.Net Core 设置MVC

在本章中,我们将在FirstAppDemo应用程序中设置MVC框架。 我们将在ASP.NET Core之上构建一个Web应用程序,更具体地说,是ASP.NET Core MVC框架。 我们可以在技术上只使用中间件构建一个完整的应用程序,但ASP.NET Core MVC为我们提供了我们可以用来轻松创建HTML页面和基于HTTP的API的功能。

要在我们的空项目中设置MVC框架,请按照下列步骤操作:

  • 安装Microsoft.AspNet.Mvc包,它允许我们访问框架提供的程序集和类。

  • 包安装完成后,我们需要注册ASP.NET MVC在运行时需要的所有服务。 我们将在ConfigureServices方法内部执行此操作。

  • 最后,我们需要为ASP.NET MVC添加中间件以接收请求。 这件中间件基本上接受一个HTTP请求,并尝试将该请求定向到我们将要写的C#类。

第1步 - 让我们通过右键单击管理NuGet包到NuGet包管理器。 安装Microsoft.AspNet.Mvc包,它允许我们访问框架提供的程序集和类。


步骤2 - 安装Microsoft.AspNet.Mvc软件包后,我们需要注册ASP.NET Core MVC在运行时需要的所有服务。 我们将使用ConfigureServices方法执行此操作。 我们还将添加一个简单的控制器,我们将看到该控制器的一些输出。

让我们给这个项目添加一个新文件夹,并称之为Controllers。 在此文件夹中,我们可以放置多个控制器,如下所示。


现在右键单击Controllers文件夹并在菜单中选择Add→Class。


第3步 - 在这里我们要添加一个简单的C#类,并为此类取名HomeController,然后单击添加按钮,如上面的截图。


这将是我们的默认页面。

步骤4 - 让我们定义一个单一的公共方法,返回一个字符串,并调用该方法Index如下面的程序所示。

1
2
3
4
5
6
7
8
9
10
11
using  System; 
using  System.Collections.Generic; 
using  System.Linq; 
using  System.Threading.Tasks;  
namespace  FirstAppdemo.Controllers { 
    public  class  HomeController { 
       public  string  Index() { 
          return  "Hello, World! this message is from Home Controller..."
      
   
}


步骤5 - 当您转到网站的根目录时,您想要查看控制器响应。 现在,我们将为我们的index.html文件提供服务。


让我们进入网站的根目录并删除index.html。 我们希望控制器对请求作出响应而不是index.html文件来响应。

步骤6 - 现在转到启动类中的Configure方法,并添加UseMvcWithDefaultRoute中间件。


步骤7 - 现在刷新网站的根目录。


您将遇到500错误。 错误说明框架无法找到所需的ASP.NET Core MVC服务。

ASP.NET核心框架本身由具有非常集中的责任的不同的小组件组成。

例如,有一个组件必须定位和实例化控制器。

该组件需要在ASP.NET Core MVC的服务集合中才能正常运行。

步骤8 - 除了添加NuGet包和中间件之外,我们还需要在ConfigureServices中添加AddMvc服务。 这里是Startup类的完整实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using  Microsoft.AspNet.Builder; 
using  Microsoft.AspNet.Hosting; 
using  Microsoft.AspNet.Http; 
using  Microsoft.Extensions.DependencyInjection; 
using  Microsoft.Extensions.Configuration;  
namespace  FirstAppDemo { 
    public  class  Startup { 
       public  Startup() { 
          var builder =  new  ConfigurationBuilder() .AddJsonFile( "AppSettings.json" ); 
          Configuration = builder.Build(); 
       }  
       public  IConfiguration Configuration {  get set ; }
       
       // This method gets called by the runtime. 
       // Use this method to add services to the container. 
       // For more information on how to configure your application, 
       public  void  ConfigureServices(IServiceCollection services) { 
          services.AddMvc(); 
       }
       
       // This method gets called by the runtime.  
       // Use this method to configure the HTTP request pipeline. 
       public  void  Configure(IApplicationBuilder app) { 
          app.UseIISPlatformHandler();  
          
          app.UseDeveloperExceptionPage(); 
          app.UseRuntimeInfoPage();  
          
          app.UseFileServer(); 
          app.UseMvcWithDefaultRoute();  
          
          app.Run(async (context) => { 
             var msg = Configuration[ "message" ]; 
             await context.Response.WriteAsync(msg); 
          });
      
       
       // Entry point for the application. 
       public  static  void  Main( string [] args) => WebApplication.Run<Startup>(args); 
    }  
}

步骤9 - 保存Startup.cs文件,并转到浏览器并刷新。 您现在将收到我们的Home控制器的回复。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: Asp.Net Core 设置MVC 
本文地址:http://www.yuanjiaocheng.net/ASPNET-CORE/setup-mvc.html
YOYOFx框架YOYOFx是支持Owin协议的MVC框架,基于Dotnet Core 1.0构建。YOYOFx基于NETStandard1.6和NET451编译,完美支持在Core和full framework(如.net framework 4.5x或mono 4.x)上的运行。YOYOFx集成了dotnet core上第一款验证码组件。特性: YOYOFx的Mvc是基于Owin跑在Core的Web框架 , YOYOFx并没有基于Asp.Net Core MVC进行开发,而选择了使用Owin协议自己来封装Http协议的方式。跨平台特性:.NET framework 4.5x和Mono4.x上直接SelfHost或使用Tinyfox跨平台运行;.NET Core 1.0 RTM 实现跨平台运行;使用Tinyfox独立版,可支持绿色部署,不需要安装Mono和Framework。通过dotnet publish将Core版本进行打包后,可支持绿色部署,不需要运行时。Owin与CoreYOYOFx的Http实现都是基于Owin协议的,并提供两个独立版本NETSTANDRD1.x和NET45x版本。目前完成:封装Owin协议的HttpContext(IOwinContext),包括Request、Response、Http Headers、Cookie等;路由机制,通过添加自定义路由表为框架添加处理事件;基于IOwinContext的MVC框架,支持多语言扩展;支持Session和自定义的Action拦截器;可替换的视图引擎,目前实现Razor视图引擎,加入了缓存机制;已移植到dotnet core 1.0 RTM版本接下来的工作:将项目的目录结构整合到dotnet core的项目文件中。    (已完成)完成框架整体的DI,将框架级依赖对象全部通过依赖注入的方式构建和对象创建工厂;首先完成Controller的创建工厂。 (已完成)完善路由系统                                        (进行中)支持方法特性[HttpGet] [HttpPost] 等定义路由。支持自定义路由路径。支持为路由规则指定特定的Handler处理函数。作者的博客地址:http://www.cnblogs.com/maxzhang1985/p/5673108.html 标签:netcore
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值