昨天在 Mac 上手写了一个最简单的 ASP.NET 5 程序,直接在 Startup.cs 中通过 Response.WriteAsync() 输出响应内容,详见 .NET跨平台:在Mac上跟着错误信息一步一步手写ASP.NET 5程序。
今天接着昨天的代码,用 vim 一步一步手写一个最简单的 ASP.NET 5 MVC 程序。
先创建 Controllers 文件夹:
mkdir Controllers && cd $_
接着创建 HomeController.cs 文件:
vi HomeController.cs
在 vim 中输入下面的代码并只在退出:
using Microsoft.AspNet.Mvc; namespace HelloCnblogs { public class HomeController : Controller { public IActionResult Index() { return Content("Hello, Cnblogs! -- ASP.NET 5 MVC"); } } }
然后用 vim 打开 Startup.cs 文件添加 MVC 相关代码:
using Microsoft.AspNet.Builder; using Microsoft.Framework.DependencyInjection; namespace HelloCnblogs { public class Startup { public void Configure(IApplicationBuilder app) { app.UseMvcWithDefaultRoute(); } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } } }
再然后就是用 vim 在 project.json 中添加 MVC 的引用
"dependencies":{ "Kestrel": "1.0.0-*", "Microsoft.AspNet.Mvc": "6.0.0-*" }
接下来,就开始运行这个最简单的 ASP.NET 5 MVC 程序。
先安装所引用的包包:
dnu restore
然后运行程序:
dnx . kestrel
运行成功!
Started
用浏览器访问 http://localhost:8080/ ,得到的响应内容如下:
Hello, Cnblogs! -- ASP.NET 5 MVC
搞定!
通过这次手写代码 ASP.NET 5 MVC 代码,得到运行一个简单 ASP.NET 5 MVC 程序的最小配置:
除了 Controller 之外,project.json 中的配置如下:
{ "commands":{ "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:8080" }, "dependencies":{ "Kestrel": "1.0.0-*", "Microsoft.AspNet.Mvc": "6.0.0-*" }, "frameworks":{ "dnxcore50": {} } }
Startup.cs 中的代码如下:
using Microsoft.AspNet.Builder; using Microsoft.Framework.DependencyInjection; namespace HelloCnblogs { public class Startup { public void Configure(IApplicationBuilder app) { app.UseMvcWithDefaultRoute(); } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } } }