ASP.Net Charts и MVC - PullRequest
       3

ASP.Net Charts и MVC

3 голосов
/ 31 января 2011

Я пытаюсь вернуть диаграмму в MVC ActionResult в качестве модели представления, но у меня возникает следующая ошибка:

CS0012: тип 'System.Web.UI.DataVisualization.Charting.Chart' определяется в сборке, которая не ссылки. Вы должны добавить ссылку для сборки «System.Web.DataVisualization, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35.

Проект, который я пишу, написан на MVC3 с использованием Razor в качестве внешней разметки (что не должно иметь никакого значения, верно?). Я включил следующие объявления в мой Web.Config

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
      <handlers>
          <!-- Microsoft Chart Controls -->
          <add name="ChartImg" path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
          <add name="ReportViewerWebControl" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler,     Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"   />
      </handlers>
  </system.webServer>

Мой код ActionResult довольно ванильный:

[HttpGet]
public ActionResult Visits()
{
    StatModel model = new StatModel();
    return View(model);
}

И рассматриваемый вид выглядит так:

@foreach (Chart chart in Model.ColumnCharts)
{ 
    @chart
}

Из того, что я читаю о возвращаемом исключении, проблема в том, что тип диаграммы неправильно выбирается представлением, когда дело доходит до визуализации изображения, но сборка System.Web.DataVisualisation появляется в ссылки на мой проект (v. 4.0.0.0). На что еще мне смотреть?

Ответы [ 3 ]

3 голосов
/ 31 августа 2011

Является ли тип System.Web.UI.DataVisualization.Charting.Chart из GAC?Иногда иногда не удается загрузить некоторые сборки из GAC.Пожалуйста, добавьте соответствующую dll в каталог bin напрямую и попробуйте запустить приложение и посмотрите, сработает ли это для вас.

Проблема может быть связана с тем, что вы ссылаетесь на тип в вашем представлении, а неваш контроллер, в этом случае вам, вероятно, нужно определить информацию о сборке как параметр web.config или как директиву страницы.

<assemblies>
        <add assembly="System.Web.UI.DataVisualization.Charting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=<YourPublicKeyToken>(31bf3856ad364e35)"/>   
</assemblies>

Надеюсь, что все исправит

2 голосов
/ 31 августа 2011

Попробуйте сделать значение CopyLocal в свойствах ссылки равным true, хотя не уверен, что это поможет.

Это может быть проблема с разрешениями.

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

По крайней мере, это то, что, кажется, говорится в каком-то месте, например:

Вы можете обойти это, как в:
http://www.tugberkugurlu.com/archive/asp-net-chart-control-on-shared-hosting-environment-chartimagehandler-parser-error-problem-solution

1 голос
/ 31 января 2011

Вы ссылались на dll в своем webconfig? Иногда Visual Studio запутывается, если вы не явный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...