我想獲得一個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>
任何幫助將不勝感激!
頁面呈現時的完整路徑是什麼?你有沒有看過任何HTML調試工具(螢火蟲等)的網址,可能是有圖像路徑的問題。 – MSUH
究竟是什麼在服務器上嘔吐? – linkerro
當您直接在瀏覽器的地址欄中鍵入操作的url時會發生什麼:'http:// yourserver/CINet/CorporateDashBoard/GetDashBoard/RenderGauge?param = 0.7'? –