在web api项目中使用asp.net mvc

本文关键字:asp net mvc web api 项目 | 更新日期: 2023-09-27 18:22:43

我找到的所有链接都在谈论在mvc项目中使用Web API。

但我想要的恰恰相反。

我找不到任何关于该场景以及如何将mvc集成到web api项目中的信息。

有可能吗?

在web api项目中使用asp.net mvc

我从一个空的ASP.Net项目开始使用Web API设置这些指令。

  1. 安装Microsoft.AspNet.Mvc Nuget软件包。

  2. 在global.asax中设置MVC路由和任何其他MVC配置,在其中配置Web API。如果您愿意,您可以在一个单独的类中进行此配置,并从global.asax调用它。

示例:

RouteTable.Routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
  1. 将MVC控制器添加到controllers文件夹中。这应该是一个单独的文件夹,其中包含Web API控制器,不必称为controllers

  2. 创建一个Views文件夹。为了让这更容易、更省时,可以在一次性解决方案中创建一个MVC项目,并复制其Views文件夹。特别是,您希望复制Views'Shared文件夹中的任何文件,以及Views文件夹中的所有.config文件。如果没有这些,MVC视图就无法工作。

  3. 如果您为#4创建了一个一次性项目,请查看其web.config,特别是<system.web>设置。

如果你没有,这里是我的一部分:

<system.web>
   <authentication mode="None" />
   <compilation debug="true" targetFramework="4.5.2" />
   <httpRuntime targetFramework="4.5.2" />
</system.web>

您现在应该让MVC与Web API一起在ASP.Net项目中工作。

为了获得更多的组织,您可以创建一个MVC区域。开始时,您不需要Area,如果以后决定添加Area,则可以很容易地将现有MVC代码移动到一个或多个新的Area中。

欲了解更多信息,请阅读David Paquette的博客文章。是的,这篇文章是关于Web表单的,但说明和概念是一致的。另外,Web窗体只是一个ASP.Net项目,Web窗体与Web API一样。

它很简单,我在几个网站上使用它-创建一个新的区域(我使用"UI"),并将其视为一个简单的MVC网站。

您将不得不修复默认路由:找到了多个与名为';的控制器匹配的类型;主页';