2011-01-30 56 views
3

我想圖表返回到MVC的ActionResult作爲視圖的模型,但我打了以下錯誤:ASP.Net圖表和MVC

CS0012: The type 'System.Web.UI.DataVisualization.Charting.Chart' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

我在寫該項目是MVC3,使用剃刀作爲前端加價(這應該沒有什麼區別,對吧?)。我已經包括在我的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 
} 

從我正在讀的關於返回的異常的問題,問題是Chart類型在渲染圖像時並未被視圖正確拾取,而是System.Web.DataVisualisation a ssembly出現在我的項目參考文獻(v。 4.0.0.0)。我還應該看什麼?

+0

您已經添加該命名空間中的Web.config文件夾視圖` <添加命名空間= 「System.Web.UI.DataVisualization.Charting」/>`? – dohaivu 2011-08-31 08:01:21

+0

是的,我有。不幸的是,我不再爲這個問題的公司工作,也從來沒有解決這個問題。 – 2011-08-31 08:24:28

回答

3

是類型System.Web.UI.DataVisua卡爾特從GAC身上找到了答案。它有時無法從GAC加載某些程序集。請直接在您的bin目錄中添加相應的dll,並嘗試運行您的應用程序,看看是否適合您。

該問題可能是由於您在視圖中引用了類型而不是在您的控制器中,因此您可能需要將程序集信息定義爲web.config設置或頁面指令。

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

希望能解決的事情

1

你在你的webconfig中引用了dll嗎?如果你不明確,有時候Visual Studio會感到困惑。

2

嘗試將參考集的屬性中的CopyLocal值設置爲true,但不確定會有幫助。

這可能是一個權限問題。

聽起來像Chart安裝程序需要安裝在任何試圖使用它的機器上,並且必須以完全信任的方式運行以允許加載程序集。

至少,這是什麼,似乎在一些地方,可以說,這樣的:

您可能能夠解決此作爲:
http://www.tugberkugurlu.com/archive/asp-net-chart-control-on-shared-hosting-environment-chartimagehandler-parser-error-problem-solution