我想获得一个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'? –