C# 在web api项目中使用asp.net mvc
我找到的所有链接都谈到在mvc项目中使用Web API 但我想要相反的结果 我找不到有关该场景以及如何将mvc集成到WebAPI项目中的任何信息C# 在web api项目中使用asp.net mvc,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,我找到的所有链接都谈到在mvc项目中使用Web API 但我想要相反的结果 我找不到有关该场景以及如何将mvc集成到WebAPI项目中的任何信息 有可能吗?它很简单,我在几个站点上使用它-创建一个新区域(我使用“UI”)并将其视为一个简单的MVC站点 您必须根据以下内容修复默认路由:我正在使用Web API从空的ASP.Net项目设置启动这些说明 安装Microsoft.AspNet.MvcNuget软件包 以及在global.asax中配置Web API的任何其他MVC配置。如果愿意,您可以在
有可能吗?它很简单,我在几个站点上使用它-创建一个新区域(我使用“UI”)并将其视为一个简单的MVC站点
您必须根据以下内容修复默认路由:我正在使用Web API从空的ASP.Net项目设置启动这些说明
Microsoft.AspNet.Mvc
Nuget软件包RouteTable.Routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
controllers
文件夹。这应该是一个单独的文件夹,用于存放Web API控制器,并且不必称为控制器
视图
文件夹。为了使这更简单、更省时,可以在一次性解决方案中创建一个MVC项目,并将其视图
文件夹复制到上面。特别是,您要复制Views\Shared
文件夹中的任何文件,以及Views
文件夹中的所有.config
文件。如果没有这些,您的MVC视图将无法工作
设置<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
</system.web>
. 开始时,您不需要区域,如果您以后决定添加区域,可以很容易地将现有MVC代码移动到一个或多个新区域中
有关更多信息,请阅读。是的,这篇文章是关于Web表单的,但是说明和概念是一致的。另外,Web表单只是一个带有Web表单的ASP.Net项目,就像Web API一样 你能解释一下为什么要把它们混在一起吗?也许您正在尝试实现的实际示例会有所帮助?假设您的Web API托管在IIS中,您完全可以将它们放在同一个项目中。即使你是自我托管,你仍然可以。这可以通过谷歌搜索“WebAPI mvc同一项目”来回答。每一个结果都在谈论如何做到这一点。尽管这肯定是可能的,但我想问的问题是:为什么?如果你能让它变得容易,你为什么要让它变得困难呢。当您创建MVC应用程序时,VisualStudio为您做了很多事情。如果你选择忽略这一点,你必须自己完成所有这些步骤(比如启动应用程序、配置路由、过滤器等等)@Amy你读过你发布的链接的解决方案了吗?我不这么认为。我将把它粘贴到这里:“…下面的文章将逐步在MVC应用程序中实现ASP.NET Web API…”我并没有询问在MVC应用程序中使用Web API的问题。我问我如何在一个WebAPI项目中使用MVC,因为我们想用razor来处理简单的表单,而不是做SPA。。。这是开销。@hbulens我无法创建MVC项目,因为我们已经有一个旧的web api。创建一个区域不是必需的。当然不是必需的,但很有用,因为它允许您在WebAPI和UI中使用具有分离功能的重复控制器。