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

时间:2015-11-18 19:54:11

标签: c# asp.net-mvc asp.net-web-api

所有链接我发现有关在mvc项目中使用Web API的讨论。

但我想要相反。

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

有可能吗?

2 个答案:

答案 0 :(得分:1)

我从使用Web API的空ASP.Net项目设置开始这些说明。

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

  2. Set up MVC routes以及global.asax中配置Web API的任何其他MVC配置。您可以在单独的类中进行此配置,并根据需要从global.asax调用它。

  3. 示例:

    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文件夹中的所有文件以及.config文件夹中的所有Views文件。如果没有这些,您的MVC视图将无效。

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

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

      <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。要开始,您不需要区域,如果您稍后决定添加区域,则可以轻松地将现有MVC代码移动到一个或多个新区域。

      有关详细信息,请阅读this blog post by David Paquette。是的,这篇文章是关于Web表单的,但说明和概念是一致的。另外,Web Forms只是一个带Web表单的ASP.Net项目,就像Web API一样。

答案 1 :(得分:-1)

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

您必须按此修复默认路线:Multiple types were found that match the controller named 'Home'