Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将列表传递给Image src_C#_Asp.net Mvc - Fatal编程技术网

C# 将列表传递给Image src

C# 将列表传递给Image src,c#,asp.net-mvc,C#,Asp.net Mvc,我将ViewBag中的列表发送到一个视图,该视图必须将该列表作为参数传递给函数,但我无法在函数中获取该列表 代码如下: @{ List<Statistic> i = ViewBag.list ; } <img src="/Chart/CreateChart?chartType=@(System.Web.UI.DataVisualization.Charting.SeriesChartType.Column)&list=@i" alt=""

我将ViewBag中的列表发送到一个视图,该视图必须将该列表作为参数传递给函数,但我无法在函数中获取该列表

代码如下:

 @{ 
         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>;

 }
或:


要将值指定给图像src,请执行以下操作

您的值分配不适合图像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;
在我的action createchart中,我反序列化了我的列表:

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;
    }

请查看StackOverflow和posting comments右上角的Help>Tour按钮。对象统计信息包含两个属性X和Y,我需要孔列表来创建我的孔chart@soumia请参阅我的最新答案。并将你的答案作为评论发布在这里。因为这不是答案。它应该是一个注释。它不起作用,问题不在于我传递参数的方式,因为如果我将列表的类型更改为字符串,我可以在函数中获取值,但当涉及到列表时,它不起作用。这个值是多少?如果要使用该列表,则需要循环并从列表中逐个获取每个值,然后分配它。您将获得函数中的每个值。您不能直接将列表分配给映像src。如果你不想循环,你必须做一些其他的事情。你的职能是什么?你在哪里调用这个函数?非常感谢RJK,我解决了这个问题,在我将列表放入src之前,我对列表进行了序列化,然后当我将它返回到我的函数中时,我对它进行了反序列化
 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;
    }