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:


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

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部