Asp.net core Vue 第一个项目
1. 创建Asp.net core WebAPI项目

Web Application包括WebAPI与MVC项目。在Asp.net Core中已经开始共用了。
使用最新版本2.2,创建API项目,至于Docker及Https暂时忽略即可。
2. 路由名称的作用

这个特性路由的Name字段用于标志一串路由地址。

需要根据名称获取路由地址的时候就方便多了。
3. Program启动类
云服务是一个趋势,Net core的重构也是为了拥抱Linux和Docker
所以,脱离图形界面,使用命令行托管,Program入口就很重要了。
namespace CoreBackend.Api
{public class Program{public static void Main(string[] args){BuildWebHost(args).Run();}public static IWebHost BuildWebHost(string[] args) =>WebHost.CreateDefaultBuilder(args).UseStartup().Build();}
}
以上代码只是设置了程序入口,开始托管程序。UseStartUp用于加载Startup类中的配置。
4. startup配置类
这个类主要是涉及依赖的添加及使用,配置Asp.Net 处理管道。
public class Startup{public void ConfigureServices(IServiceCollection services){}public void Configure(IApplicationBuilder app, IHostingEnvironment env){//判断是否是环境变量if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}//这个就是一个简单的中间件写法app.Run(async (context) =>{await context.Response.WriteAsync("Hello World!");});}}
核心就两个方法:ConfigureServices配置依赖,Configure配置管道。
最终的Startup的样子:
public void Configure(IApplicationBuilder app, IHostingEnvironment env){if (env.IsDevelopment()){// 在开发环境中,使用异常页面,这样可以暴露错误堆栈信息,所以不要放在生产环境。app.UseDeveloperExceptionPage();}else{app.UseExceptionHandler("/Error");// 在非开发环境中,使用HTTP严格安全传输(or HSTS) 对于保护web安全是非常重要的。// 强制实施 HTTPS 在 ASP.NET Core,配合 app.UseHttpsRedirectionapp.UseHsts();}app.UseSwagger();app.UseSwaggerUI(c =>{c.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelp V1");c.RoutePrefix = "";});app.UseAuthentication();//跨域第一种版本,请要ConfigureService中配置服务 services.AddCors();app.UseCors(options => options.WithOrigins("http://localhost:8021").AllowAnyHeader().AllowAnyMethod()); // 跳转httpsapp.UseHttpsRedirection();// 使用静态文件app.UseStaticFiles();// 使用cookieapp.UseCookiePolicy();// 返回错误码app.UseStatusCodePages();//把错误码返回前台,比如是404app.UseMvc();}
5. 使用MVC
在ConfigureServices中添加MVC中间件:
public void ConfigureServices(IServiceCollection services)
{services.AddMvc(); // 注册MVC到Container
}
在Configure中使用MVC:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseMvc();
}
6. 特性路由

在控制器上的特性路由相当于本控制器的全局路由,配置以后该控制器下的方法前缀都是这个配置。
上面注释掉的那个特性路由采用的是硬编码的方式,不利于扩展。使用[controller]会自动替换成控制器名称。
7. 基于注解的模型验证

这个ErrorMessage可以使用参数, {0}表示Display的Name属性, {1}表示当前注解的第一个变量, {2}表示当前注解的第二个变量.
ModelState是验证信息,isValid是验证通过。[FromBody]是自动从请求体绑定内容到DTO:

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
