【问题标题】:Setting up MVC 4 (Razor) with MonoDevelop使用 MonoDevelop 设置 MVC 4 (Razor)
【发布时间】:2012-09-15 01:31:22
【问题描述】:

我正在拼命地尝试在 Monodevelop 上使用 Razor 设置 MVC 4(在最坏的情况下 3)。我坐在 Mac OS X 机器上,使用 Mono 2.11.4。

它似乎没有所需的所有程序集。例如, System.Web.Helper 似乎没有找到。而 MonoDevelop 只能找到 System.Web.Mvc 版本 3(选择了 NET Framework 4.5)或版本 2(选择了 NET Framework 4.0)。有谁知道如何让 MVC 4 与 Razor 一起工作?

【问题讨论】:

    标签: mono monodevelop


    【解决方案1】:

    我修改了 VS2010 MVC4 项目模板以在 Mac 和 Linux 上的 Xamarin Studio/MonoDevelop 中运行 out-of-the-zipfile: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 的链接。

    【讨论】:

    • 谢谢!将对此进行调查:D
    【解决方案2】:

    根据Compatibility page on the Mono site MVC4 支持,但异步功能除外。除非 MVC4 框架的一部分默认使用异步,否则只有在代码中添加了该模式时,这些新功能才会成为问题。

    【讨论】:

      【解决方案3】:

      (理论上,Razor pages 与 Mono 一起使用 2.10.x 系列,但您必须将 Microsoft 的程序集与它捆绑到您的 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 复制粘贴我的答案并稍作调整。)

      【讨论】:

      • 嗯... Mono 2.11.4 没有实现 Async/Await 吗?无论如何,在 MonoDevelop 中启动 MVC 3 项目也不起作用。甚至当你启动一个新的 MVC 3 项目时生成的示例项目也可以完全编译(或者它会出现运行时错误)
      • async/await 是 C# 语言功能,是的,Mono 2.11.4 实现了它。我说的是 ASP.NET 的新异步 API。
      • 您使用的是哪个版本的 MonoDevelop?建议您使用 master 分支(尚未发布),因为它包含 GoogleSummerOfCode 学生的一些工作,该学生从事 ASP.NET 集成。
      • 我去看看 master 分支 :)
      • 有了 Mono 3.0.6 和最新的 XamarinStudio,MVC4 仍然没有问题。甚至无法让 MVC3 工作...... MVC 需要在 Mono 中得到一些认真的爱。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多