我正在绝望地尝试在Monodevelop上使用Razor设置MVC 4(在最糟糕的情况下)。我坐在Mac OS X机器上,使用Mono 2.11.4。
似乎没有所需的所有组件。例如,似乎找不到System.Web.Helper。 MonoDevelop只能找到System.Web.Mvc版本3(选择了.NET framework 4.5)或版本2(选择了.NET Framework 4.0)。有谁知道如何让Razor的MVC 4工作?
答案 0 :(得分:11)
(理论上,Razor页面与Mono一起使用的是版本2.10.x系列,但你必须将微软的程序集与它捆绑到你的Linux机器中。)
自从Mono 2.11.1以来,这些程序集现在默认捆绑在Mono中,因为Microsoft最近开源Razor(在March 2012上)。所以:你正在使用正确的Mono版本。
问题在于,如this blogpost中所述,MVC4依赖于异步ASP.NET API堆栈,而Mono尚未准备就绪。所以是的,您现在可以将Razor与Mono一起使用而无需从Windows部署MS程序集,但是,您现在需要坚持使用MVC3而不是4。
(从this other stackoverflow question复制粘贴我的回答并稍微调整一下。)
答案 1 :(得分:7)
我修改了VS2010 MVC4项目模板,以便在Mac和X上的Xamarin Studio / MonoDevelop中运行out-of-the-zipfile。 Linux:http://www.cafe-encounter.net/p1319/run-asp-net-mvc4-on-mono-monodevelop-on-mac-the-c-template-project。
更新:我在.Net 4.5模板上做了一个MVC4,注释在http://www.cafe-encounter.net/p1510/asp-net-mvc4-net-framework-version-4-5-c-razor-template-for-mono-on-mac-and-linux,包括指向github的链接。
答案 2 :(得分:2)
根据Compatibility page on the Mono site支持MVC4,但异步功能除外。除非默认情况下MVC4框架的一部分使用异步,否则如果您已将该模式添加到代码中,那么这些新功能将只会出现问题。