将列表传递给图像源

本文关键字:图像 列表 | 更新日期: 2023-09-27 18:20:30

我将ViewBag中的List发送到必须将此列表作为参数传递给函数的View,但我无法在我的函数中获取该列表。

代码如下:

 @{ 
         List<Statistic> i = ViewBag.list ;
  }
 <img src="/Chart/CreateChart?chartType=@(System.Web.UI.DataVisualization.Charting.SeriesChartType.Column)&list=@i" alt="" />

所以,请帮助我。

将列表传递给图像源

你必须把它转换为该类型:

@{ 
         var i = ViewBag.list as  List<Statistic>;
 }

或:

@{ 
             var i = (List<Statistic>)ViewBag.list;
 }

要将值分配给Image src请执行以下操作。

您的值分配不适合映像源。

<img src="/Chart/CreateChart?chartType=" + @(System.Web.UI.DataVisualization.Charting.SeriesChartType.Column) + "&list=" + @i alt="" />

我们不能立即将类分配给img src。它永远不会在 HTML 中编译。您还有其他Js/Cs库汇编吗?

我在将

列表放入 src 之前通过对列表进行序列化解决了这个问题,然后在我将其取回函数中时对其进行反序列化,如下所示:

在我的控制器中,我首先序列化我的列表

 string jsonString = JsonHelper.JsonSerializer<IList<Statistic>>(list);
        ViewBag.list =jsonString;

在我的操作中创建图表中,我反序列化我的列表:

IList<Statistic> lists = JsonHelper.JsonDeserialize<IList<Statistic>>(list);

这是 JsonHelper 类:

 public class JsonHelper
{
    /// <summary>
    /// JSON Serialization
    /// </summary>
    public static string JsonSerializer<T>(T t)
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
        MemoryStream ms = new MemoryStream();
        ser.WriteObject(ms, t);
        string jsonString = Encoding.UTF8.GetString(ms.ToArray());
        ms.Close();
        return jsonString;
    }
    /// <summary>
    /// JSON Deserialization
    /// </summary>
    public static T JsonDeserialize<T>(string jsonString)
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
        MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
        T obj = (T)ser.ReadObject(ms);
        return obj;
    }