ASP.NET MVC:用于动作写入​​图像的RenderAction抛出异常

时间:2011-02-22 11:04:29

标签: asp.net-mvc asp.net-mvc-3 razor

我有一个动作返回图像:

    public void SensorData(int id, int width = 300, int height = 100)
    {
        using (var repo = new DataRepository())
        {
            var sensor = repo.GetSensor(id);
            if (sensor == null) return;

            var chart = new Chart(width, height);
            chart.AddSeries(name: "Values", 
                            chartType: "line", 
                            xValue: sensor.DataValues.Select(s => s.Date).ToList(),
                            yValues: sensor.DataValues.Select(s => s.Value).ToList());

            chart.Write();
        }
    }

当我从浏览器调用它时,此操作呈现正常(例如controller_name / SensorData / 6)。问题是,当我尝试使用Html.RenderAction查看它时,我在我的视图上得到以下编译异常:

'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'的最佳重载方法匹配有一些无效的参数。

这是生成异常的代码:

@Html.RenderAction("SensorTypes", new { id = 6});

关于可能导致此问题的任何想法?

由于

2 个答案:

答案 0 :(得分:5)

您有两种可能性:

@{Html.RenderAction("SensorTypes", new { id = 6 });}

或:

@Html.Action("SensorTypes", new { id = 6 })

使用WebForms视图引擎将其与等效文件进行对比:

<% Html.RenderAction("SensorTypes", new { id = 6 }); %>
<%= Html.Action("SensorTypes", new { id = 6 }) %>

答案 1 :(得分:4)

您无法直接在HTML中嵌入图像数据。 尝试使用图像标记并指向操作。

<img src='@Url.Action("SensorTypes", new { id = 6})'  />