Проблема пространства имен с представлением MVC - движок Razor

Я добавил ссылку на System.Web.DataVisualization в свой проект MVC. Теперь, когда я пытаюсь добавить пространство имен в свой web.config, я получаю сообщение об ошибке

CS0234: Тип или имя пространства имен «DataVisualization» не существует в пространстве имен «System.Web.UI» (отсутствует ссылка на сборку?)

Итак, я пытаюсь использовать то же самое в своем контроллере. Это прекрасно работает.

using System.Web.UI.DataVisualization;

Тогда то же самое должно работать в моем представлении Razor

Поэтому я пытаюсь использовать это в моем представлении Razor

@using System.Web.UI.DataVisualization;

Это снова не работает, давая мне ту же ошибку

Почему я могу использовать пространство имен в своем контроллере, а не в своих представлениях?

Я что-то упускаю...


person Sarath    schedule 26.02.2011    source источник
comment
Сара, я попробую с тобой, и у меня такая же проблема. ну как найти dll для своего проекта. Я сам ни на шагу не обнаружил, что это часть .net   -  person    schedule 28.02.2011
comment
Компонент System.Web.DataVisualization поставляется с .Net 4.0   -  person Sarath    schedule 01.03.2011
comment
У меня точно такая же проблема ... решения пока нет   -  person David    schedule 16.03.2011
comment
Хотя кажется странным, что я могу добавить пространство имен для контроллеров, но не для представлений.   -  person Sarath    schedule 17.03.2011


Ответы (2)


Если вы перейдете к ссылкам на проект, перейдите к свойствам «System.Web.DataVisualization», затем установите для «CopyLocal» значение true, тогда вы сможете поместить

@using System.Web.UI.DataVisualization

в вашем представлении Razor.

person dankorz    schedule 15.09.2011

Это вызвало у меня любопытство, поэтому я просто попробовал сам. Работает нормально. Убедитесь, что вы добавили свое пространство имен в Web.Config в папке «Просмотры» (а не в корневом файле web.config).

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.UI.DataVisualization.Charting" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
person santiagoIT    schedule 28.02.2011
comment
Спасибо за ваш ответ. Я подозреваю, что это вызывает ошибку только в том случае, если вы попытаетесь использовать то же самое в своем представлении. После добавления пространства имен вы пробовали использовать элемент управления Chart в своем бритвенном представлении? - person Sarath; 01.03.2011
comment
Неа, пользоваться не пробовал. Но я без проблем использовал помощник WebGrid на рабочем сайте. Похоже, вы получили ошибку времени компиляции. Значит, вы получаете ошибку во время выполнения? Вы добавили пространство имен в правильный файл web.config, как было предложено в моем ответе? - person santiagoIT; 01.03.2011
comment
Да, я сделал, как было предложено в вашем ответе, прежде чем размещать вопрос. Я уверен, что вы могли использовать WebGrid, потому что и веб-сетка, и диаграммы также доступны в пространстве имен System.Web.Helpers. Диаграмма в пространстве имен System.Web.Helpers имеет ограниченную функциональность, и я хотел использовать вместо нее то, что доступно в System.Web.UI.DataVisualization ... Здесь я столкнулся с этой проблемой. - person Sarath; 02.03.2011