Разработка ASP.NET MVC с использованием MonoDevelop на MAC - PullRequest
1 голос
/ 05 мая 2011

Я занимаюсь разработкой веб-приложения с использованием ASP.NET MVC 2.0 в MonoDevelop.У меня установлены последние версии Mono 2.10 и MonoDevelop 2.4.2, и я запускаю их на Mac.

Согласно примечаниям к выпуску mono, он должен поддерживать ASP.NET MVC 2.0.Однако я обнаружил, что шаблоны проектов MonoDevelop все еще поддерживают только ASP.NET MVC 1.0.Поэтому мне пришлось создать проект MVC из MonoDevelop и удалить system.web.mvc 1.0.0.0 из справочника и добавить обратно system.web.mvc 2.0.0.0. Я могу написать и скомпилировать код ОК, а MonoDevelop предоставляет intellisense только для существующих методовв MVC 2.0 из C # и файла ASPX.Однако при попытке запустить его из MonoDevelop возникла ошибка компиляции с жалобой «<%: Html.LabelFor (model => model.Name)%>», поскольку метод LabelFor не может быть распознан.

MonoDevelop использует XSPв качестве тестового веб-сервера.Я не уверен, как это настроено, поскольку я не устанавливал это непосредственно.Я думаю, что это было установлено как часть MonoDevelop.Я предполагаю, что XSP почему-то все еще использует MVC 1.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>

Ответы [ 3 ]

1 голос
/ 05 мая 2011

Настройка проекта ASP.NET для ASP.NET MVC требует изменения и добавления загрузки настроек в web.config.Шаблон проекта в MD предназначен для ASP.NET MVC 1.0, а не для ASP.NET MVC 2, поэтому, возможно, вам не хватает некоторых необходимых настроек, возможно, импорта пространства имен.

0 голосов
/ 22 июля 2013

Я создал загружаемый zip-файл шаблона проекта для Asp.Net MVC 4, который создается и работает в / в Mono / Xamarin Studio / MonoDevelop для Mac и Linux по адресу http://www.cafe -encounter.net / p1319 / вводного жерех-нетто-mvc4-на-моно-Monodevelop-на-макинтош-в-с-шаблон-проект . Я должен добавить, что большая часть решения проблемы пришла от Работает ли Razor View Engine для Mono?

0 голосов
/ 02 июня 2011

У меня это работает с двумя моими текущими проектами на MacOS X. Мне нужно было только три шага, чтобы убедиться, что они были выполнены, они следующие:

  • Обновите версию по всем ссылкамкак во внутренней (представлениях) веб-конфигурации, так и в внешней (приложение) [вы сделали это].
  • Разыменование System.Web.MVC 1.0.0.0 & Reference 2.0.0.0 для проекта
  • Убедитесь, что у вас нет бинарных файлов 1.0.0.0 в пути бина, открытый ключ не изменится
...