Asp.net mvc 在MAC上使用MonoDevelop开发ASP.NET MVC

Asp.net mvc 在MAC上使用MonoDevelop开发ASP.NET MVC,asp.net-mvc,asp.net-mvc-2,mono,monodevelop,xsp,Asp.net Mvc,Asp.net Mvc 2,Mono,Monodevelop,Xsp,我正在MonoDevelop中使用ASP.NETMVC2.0开发一个web应用程序。我有最新的Mono 2.10和MonoDevelop 2.4.2,我正在Mac上运行它们 根据mono的发行说明,它应该支持ASP.NETMVC2.0。然而,我发现MonoDevelop的项目模板仍然只支持ASP.NETMVC1.0。因此,我必须从MonoDevelop创建MVC项目,并从参考中删除system.web.MVC 1.0.0.0,然后将system.web.MVC 2.0.0.0添加回。我可以编写和

我正在MonoDevelop中使用ASP.NETMVC2.0开发一个web应用程序。我有最新的Mono 2.10和MonoDevelop 2.4.2,我正在Mac上运行它们

根据mono的发行说明,它应该支持ASP.NETMVC2.0。然而,我发现MonoDevelop的项目模板仍然只支持ASP.NETMVC1.0。因此,我必须从MonoDevelop创建MVC项目,并从参考中删除system.web.MVC 1.0.0.0,然后将system.web.MVC 2.0.0.0添加回。我可以编写和编译代码,MonoDevelop确实为MVC2.0中的C#和aspx文件中的方法提供了intellisense。然而,当我试图从MonoDevelop运行它时,出现了编译错误,抱怨“model.Name)%>”因为无法识别LabelFor方法

MonoDevelop使用XSP作为其测试web服务器。我不确定它是如何配置的,因为我自己没有安装它。我认为它是作为MonoDevelop的一部分安装的。我猜XSP仍然使用MVC1.0,但我无法证明这一点,因为我甚至找不到它的安装位置

谁能帮我一下吗

更新: 我也一直在怀疑web.config。下面是它们现在的样子: web.config

<configuration>
  <system.web>
    <compilation defaultLanguage="C#" debug="true">
      <assemblies>
        <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </assemblies>
</compilation>
<customErrors mode="RemoteOnly">
</customErrors>
<pages>
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
  </namespaces>
</pages>
<authorization>
  <allow users="*" />
</authorization>

视图下的web.config

<configuration>
<system.web>
    <httpHandlers>
        <add path="*" verb="*" type="System.Web.HttpNotFoundHandler" />
    </httpHandlers>
    <pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
            pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
            userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <controls>
            <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
            namespace="System.Web.Mvc" tagPrefix="mvc" />
        </controls>
    </pages>
</system.web>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
        <remove name="BlockViewHandler" />
        <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
</system.webServer>


为ASP.NET MVC设置ASP.NET项目需要在web.config中更改和添加大量设置。MD中的项目模板适用于ASP.NET MVC 1.0,而不是ASP.NET MVC 2,因此您可能缺少一些必要的设置,可能是名称空间导入。

为ASP.NET MVC设置ASP.NET项目需要在web.config中更改和添加大量设置。MD中的项目模板适用于ASP.NET MVC 1.0,而不是ASP.NET MVC 2,因此您可能缺少一些必要的设置,可能是名称空间导入。

我在MacOS X上运行了我当前的两个项目。我只需要三个步骤来确保完成,它们如下所示:

  • 升级内部(视图)web配置和外部(应用程序)中所有引用的版本[您已完成此操作]
  • 项目参考System.Web.MVC 1.0.0.0和参考2.0.0.0
  • 确保bin路径中没有1.0.0.0二进制文件,公钥不会更改

我在MacOS X上运行了两个当前项目。我只需要三个步骤来确保完成,它们如下所示:

  • 升级内部(视图)web配置和外部(应用程序)中所有引用的版本[您已完成此操作]
  • 项目参考System.Web.MVC 1.0.0.0和参考2.0.0.0
  • 确保bin路径中没有1.0.0.0二进制文件,公钥不会更改

我已经为Asp.Net MVC 4制作了一个项目模板的可下载zip文件,该模板在Mac和Linux上的Mono/Xamarin Studio/MonoDevelop上构建并运行。
我应该补充一点,很多问题的解决方案都来自于我为Asp.NETMVC4做了一个项目模板的可下载zip文件,它在Mac和Linux上的Mono/Xamarin Studio/MonoDevelop上构建和运行。
我应该补充一点,很多问题的解决方案都来自

谢谢你的回答。我已经把web.config放在我的问题中了。你觉得有什么可疑的吗?嗯,看起来都是对的。也许它仍然加载了错误的dll。尝试运行调试器-它会打印出它正在加载的所有程序集的列表。谢谢您的回答。我已经把web.config放在我的问题中了。你觉得有什么可疑的吗?嗯,看起来都是对的。也许它仍然加载了错误的dll。尝试运行调试器-它将打印出正在加载的所有程序集的列表。