C# 将列表传递给Image src
我将ViewBag中的列表发送到一个视图,该视图必须将该列表作为参数传递给函数,但我无法在函数中获取该列表 代码如下: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=""
@{
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;
}