我希望将ASP.NET Web API添加到Visual Studio 2012中开发的ASP.NET MVC 4 Web应用程序项目中.我必须执行哪些步骤才能将正常运行的Web API添加到项目中?我知道我需要一个从ApiController派生的控制器,但这就是我所知道的.
如果我需要提供更多详细信息,请与我们联系.
asp.net-mvc asp.net-mvc-4 asp.net-web-api visual-studio-2012
我最近开始按照本指南将我的项目迁移到.NET 4.5.1和Web Api 2.
MS开发人员Rick Anderson要求你做的第一件事就是改变:
WebApiConfig.Register(GlobalConfiguration.Configuration);
Run Code Online (Sandbox Code Playgroud)
至
GlobalConfiguration.Configure(WebApiConfig.Register);
Run Code Online (Sandbox Code Playgroud)
在global.asax文件中.然而,当我尝试构建时,这给了我一个错误:
错误1'System.Web.Http.GlobalConfiguration'不包含'Configure'的定义
我的项目目前是MVC 5和Web Api 2和.NET 4.5.1,但我认为System.Web.Http仍然认为它是.NEt 4.0版本.
我该怎么办呢?
谢谢.
编辑:
这是我的程序集绑定:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<!--
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly> -->
</assemblyBinding>
Run Code Online (Sandbox Code Playgroud)
顶部评论后评论的所有内容都因为我收到了错误:
警告2发现无法解析的同一依赖程序集的不同版本之间发生冲突.当日志详细程度设置为详细时,这些引用冲突将在构建日志中列出.
并且摆脱硬绑定正在解决这个问题.
我正在创建一个新的MVC4项目,研究让我相信现在通过Web API框架而不是控制器操作可以更好地实现从javascript到服务器端的通信.我的理解是否正确?
我假设我可以在Web API和MVC控制器之间共享所有属性等,所以面对它,对我来说似乎不是一个巨大的变化.
在设置应用程序时,我喜欢将组件拆分到项目中.我的计划是拥有一个MVC项目和一个Web API项目.但我遇到了问题.例如,我最终有2个应用程序,单独的路由设置等.
所以我的问题是,在MVC应用程序中,Web API框架应该位于同一个项目中,还是应该将Web API分离为自己的项目并解决问题?
这里有一个很好的问题: 如何将Web API添加到现有的ASP.NET MVC 4 Web应用程序项目中?
不幸的是,这还不足以解决我的问题.我已经尝试了两次,以确保我没有做错任何事.我右键单击"控制器"并添加了项目"Web API 2 Controller with actions,using Entity Framework",其中我选择了我的模型类和db上下文.一切都很顺利...但仍然...每次我试图访问/ api/Rest我得到404错误(我的控制器的名称是RestController).