Почему я не могу использовать вспомогательные методы Html со строго типизированными представлениями в ASP.NET MVC 2? - PullRequest
3 голосов
/ 08 ноября 2010

Я создал проект ASP.NET MVC 2 с моделью.Затем я создал вид и выбрал строгий тип для созданной модели.Я также сделал то же самое с частичным представлением.В любом случае по какой-то причине я получаю сообщение об ошибке: «Не удается разрешить символ« HTML »всякий раз, когда я пытаюсь использовать вспомогательные методы HTML, которые ASP.NET MVC 2 предоставляет для создания элементов формы для модели. У меня есть Visual Studio 2010 и ASPУстановлен .NET MVC 2. Это было что-то, что вы видели раньше? Если да, то есть ли решение, которое решит эту проблему?

Моя модель выглядит так:

public namespace MyNamespace { public class MyModel { public string MyProperty { get; set; } } }

Первая строкамоего обычного вида:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MyNamespace.MyModel>" %>

Первая строка моего частичного вида:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyNamespace.MyModel>" %>

Ответы [ 5 ]

5 голосов
/ 17 февраля 2011

Я думаю, что нашел решение вашей проблемы (хотя я не уверен, что оно временное)

Когда вы создаете новый проект asp mvc, он содержит 2 файла web.config.Один в корне проекта и один в каталоге Views.

Я подумал, что один в представлениях не требуется, поэтому исключил его.На следующий день решитель прекратил распознавать вспомогательные методы Html.Я добавил его снова и перезагрузил решение, и все ошибки исчезли.

Надеюсь, это поможет

РЕДАКТИРОВАТЬ

эта ссылка вероятно, поможет с этой проблемой

3 голосов
/ 08 ноября 2010

Я все время получаю эту ошибку, я не совсем понимаю, что ее вызывает.Это должно быть как-то связано с тем, что Visual Studio не может правильно проанализировать директиву Page / UserControl и впоследствии не загружать правильный тип, определенный в атрибуте наследования.

Это не влияет на другие приложениячем потерять intellisense, и вы также получите много ошибок в выходных данных Visual Studio, когда у вас есть файл aspx view, откройте и создайте свое решение (ваше решение все равно не должно создавать проблем).

Я могу получить ошибкувремя от времени уходите, связываясь с директивой Page / UserControl, которая вынуждает Visual Studio пересмотреть ее.Например, поместите случайный пробел в любом месте внутри атрибута inherits, а затем удалите его.

HTHs,
Charles

Ps.Я тоже использую Resharper, но я не уверен, если это виноват.

0 голосов
/ 02 августа 2013

Эта ошибка произошла со мной, потому что я по ошибке переместил файл web.config, который находился в папке «Views». Этот файл содержит файл System.Web.Mvc. Надеюсь, это поможет.
Привет

0 голосов
/ 18 апреля 2011

У меня была такая же проблема, также удалил web.config в момент невежества ...

Слияние приведенного ниже фрагмента web.config с вашим web.config в корневеб-приложение также поможет.Он снова работает, как и должно быть, и все же у вас есть только один файл web.config.

  <system.web>
     <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">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
        <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>
0 голосов
/ 09 ноября 2010

Да, это тоже случалось со мной пару раз. Если приложение загружается правильно, а представление загружает объекты, я подозреваю, что это может быть ваша ReSharper Build. Попробуйте обновить свою версию Resharper и посмотрите, распознает ли она ваши модели.

...