MVC 框架可以将传入的 HTTP 请求映射到某个类的特定方法上,在方法内执行任务并返回数据。
我们项目依赖中的 Microsoft.AspNetCore.App 已包含 Microsoft.AspNetCore.Mvc 及其相关的库。
MVC
关注点分离
- Controller:接收请求,构建 Model,选择 View
- Model:携带信息和逻辑
-
路由 Routing
路由:将 HTTP 请求映射到正确的 Controller 的方法上。
Conventional Routing
- Attribute Routing
Conventional Routing:
app.UseMvc(builder =>
{
builder.MapRoute("Default", "{controller=Home}/{action=Index}/{id?}");
});
Attribute Routing:
using Microsoft.AspNetCore.Mvc;
namespace Tutorial.Web.Controllers
{
//[Route("about")]
//[Route("[controller]")]
[Route("v2/[controller]/[action]")]
public class AboutController
{
//[Route("")]
public string Me()
{
return "Dave";
}
//[Route("company")]
//[Route("[action]")]
public string Company()
{
return "No Company";
}
}
}
两种路由方式只能选择一种使用。常见的 MVC 应用通常选择前者,RESTful API 或 Web API 项目通常选择后者。