2012-06-29 51 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

相关问题