2012-06-29 94 views
0

我想獲得一個DevExpress計量器控制在MVC中工作。實際的教程住在這裏:http://www.devexpress.com/Support/Center/p/E2976.aspx。它通過一個xml文件創建設置並創建一個圖像,然後將其存儲在控制器的內存流中,並推送到位於View上的img標籤。這個img標籤src attr正在調用Url.Action來調用渲染量表的動作。在控制器中的代碼看起來像這樣asp.net MVC服務動態圖像不工作在服務器上(只有本地)

[OutputCache(Duration = 1000, VaryByParam = "param")] 
     public ActionResult RenderGauge(double param) 
     { 
      ASPxGaugeControl ctrl = new ASPxGaugeControl(); 
      param = param * 100; 
      ctrl.RestoreLayoutFromXml(Server.MapPath("~/App_Data/gauge.xml")); 
      (ctrl.Gauges["myGauge"] as CircularGauge).Scales["myScale"].Value = (float)param; 

      MemoryStream stream = new MemoryStream(); 
      ctrl.ExportToImage(stream, ImageFormat.Jpeg); 

      stream.Seek(0, SeekOrigin.Begin); 
      return new FileStreamResult(stream, "image/jpeg"); 
     } 

觀是這樣的:

<div style="background: 1px solid Blue; width; 240px;"> 
<% double data = Model.ListData[0].Percentage; %> 
        <img src='<%: Url.Action("RenderGauge", "GetDashBoard", new RouteValueDictionary(new { param = data })) %>' 
         alt="Gauge showing data" id="gaugeImg1" /> 

    </div> 

同樣,我的本地機器上的這一切工作,但pukes在服務器上。在src ATTR似乎精細渲染:

<img src='/CINet/CorporateDashBoard/GetDashBoard/RenderGauge?param=0.7' 
         alt="Gauge showing data" id="gaugeImg1" /> 

我還想補充一點,這是IIS 7,MVC 2和我試圖加入,我發現在互聯網上,但沒有成功特殊的處理程序:

<handlers> 
     <add type="DevExpress.Web.ASPxUploadControl.ASPxUploadProgressHttpHandler, DevExpress.Web.v11.2, Version=11.2.11.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" name="ASPxUploadProgressHandler" preCondition="integratedMode" /> 
     <add name="PNG Images" path="*.png" verb="*" type="System.Web.StaticFileHandler" resourceType="Unspecified" preCondition="integratedMode" /> 
</handlers> 

任何幫助將不勝感激!

+0

頁面呈現時的完整路徑是什麼?你有沒有看過任何HTML調試工具(螢火蟲等)的網址,可能是有圖像路徑的問題。 – MSUH

+2

究竟是什麼在服務器上嘔吐? – linkerro

+0

當您直接在瀏覽器的地址欄中鍵入操作的url時會發生什麼:'http:// yourserver/CINet/CorporateDashBoard/GetDashBoard/RenderGauge?param = 0.7'? –

回答

0

謝謝大家對於你的問題,這很奇怪,因爲它從來沒有嘔吐過,直接出現了'x'和alt文本被顯示但沒有圖像的相同結果。原來,DevExpress的Gauge dll並未在服務器上本地複製。原以爲我會得到一個抱怨的例外,但哦。希望這可以幫助其他人

+0

請將您的答案標記爲已接受的答案,以便其他人知道問題已解決 – peroija

相關問題