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+web api+easyui

Asp.net MVC 与 Asp.net Web API 区别

ASP.NET MVC 4 Web API

AngularJS + ASP.NET Web API + ASP.NET MVC 身份验证

在 IIS 上使用 VS 2012 发布我的 asp.net mvc Web 应用程序不起作用,除非我在 VS 中运行 Web 应用程序

将 ASP.NET MVC 应用程序发布到 Web 主机 - 在 VS 项目结构中而不是应用程序中部署文件