Web APi Vs MVC 和在 ASP.net 核心 Web APi 中提供静态文件
Posted
技术标签:
【中文标题】Web APi Vs MVC 和在 ASP.net 核心 Web APi 中提供静态文件【英文标题】:Web APi Vs MVC and Serving static files in ASP.net core Web APi 【发布时间】:2018-06-02 19:22:27 【问题描述】:我们有一个 ASP.net MVC 应用程序,由于客户需求,我们正在寻求将其迁移到 ASP.net CORE。 实际上,该应用程序正在提供由同一个 ASP.net 应用程序服务的 AngularJS 客户端应用程序使用的 REST 服务,实际上它有点乱。 我应该选择什么,Web API 或 MVC?如果我选择 Web API,它可以提供静态文件吗?
提前致谢!
【问题讨论】:
在 ASP.NET Core 中,MVC 和 WebAPI 没有分离。后者只是意味着您的“API 控制器”直接返回数据而不是返回视图。 – 您所做的选择是针对模板的,并且只决定将哪些基础内容添加到您的项目中。但是您始终可以将静态文件中间件添加到任何项目中。顺便提一句。如果您正在查看 Angular,您还可以查看 Angular 模板,该模板还附带使用 Webpack 为 Angular 提供的客户端构建设置。 【参考方案1】:首先,Web Api 和 MVC 在 ASP.NET Core 中合并。
设置一个可以运行静态文件的解决方案
在Startup.cs类的Configure方法中启用静态文件,添加:
app.UseStaticFiles();
将前端解决方案(angularjs 文件、html 等)添加到 wwwroot 文件夹。
删除默认的 launchUrl (Properties/launchSettings.json) 并将其设置为空字符串,这将使 Web 服务器改为在根目录中查找 index.html 文件
【讨论】:
感谢您提供完整的 awnser,客户端需要在 ubuntu 上部署应用程序并迁移到 .Net 核心似乎成本很高,因此我们选择了 Mono。以上是关于Web APi Vs MVC 和在 ASP.net 核心 Web APi 中提供静态文件的主要内容,如果未能解决你的问题,请参考以下文章
Asp.net MVC 与 Asp.net Web API 区别
AngularJS + ASP.NET Web API + ASP.NET MVC 身份验证
在 IIS 上使用 VS 2012 发布我的 asp.net mvc Web 应用程序不起作用,除非我在 VS 中运行 Web 应用程序