所有链接我发现有关在mvc项目中使用Web API的讨论。
但我想要相反。
我找不到有关该场景的任何信息以及如何将mvc集成到web api项目中。
有可能吗?
答案 0 :(得分:1)
我从使用Web API的空ASP.Net项目设置开始这些说明。
安装Microsoft.AspNet.Mvc
Nuget包。
Set up MVC routes以及global.asax中配置Web API的任何其他MVC配置。您可以在单独的类中进行此配置,并根据需要从global.asax调用它。
示例:
RouteTable.Routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
将MVC控制器添加到controllers
文件夹。这应该是一个包含Web API控制器的单独文件夹,不必调用controllers
。
创建Views
文件夹。为了使这更容易,更省时,在一次性解决方案中创建一个MVC项目并复制其Views
文件夹。特别是,您要复制Views\Shared
文件夹中的所有文件以及.config
文件夹中的所有Views
文件。如果没有这些,您的MVC视图将无效。
如果您为#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。要开始,您不需要区域,如果您稍后决定添加区域,则可以轻松地将现有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'