我需要使用ViewBag作为另一个ViewBag中的列表,我不明白我该怎么做 这是我的代码:
List<string> srclist = new List<string>();
foreach(var item in candidateportfolio)
{
if(item.PortfolioID!=0 && item.ChandidateID!=0)
{
string filepath = Server.MapPath("~/ePortfolio/PortFolioContent/" + HobbyDetailID + "/Assignments/Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg");
if (System.IO.File.Exists(filepath))
{
srclist.Add(filepath);
}
}
}
ViewBag.Thumbnail = srclist;
candidateportfolio是CandidatePortfolio类的对象。
我获取类中的数据并检查其字段是否为空。然后我将文件路径添加到列表并将列表分配给Viewbag <登记/>
然后在View i中使用它如下:
@foreach (var item in ViewBag.Thumbnail as List<string>)
{
<img src="@item" title="Learner:@ViewBag.FirstName" width="150px" height="150px" border="5" style="align:right;margin:10px"/>
}
现在问题是我也想把ViewBag.FirstName作为list.and我不能在这里运行另一个列表。请告诉我该怎么做。
答案 0 :(得分:5)
如果你想要一个包含FirstName
的列表和一张照片的路径,你可以创建一个新类:
public class ThumbnailModel
{
public string FirstName { get; set; }
public string PhotoPath { get; set; }
}
现在,您可以向List<Thumbnail>
添加ViewBag
。
但我建议只使用包含List<Thumbnail>
属性的relvant模型创建强类型视图。
答案 1 :(得分:1)
user1274646,
这里最好的选择是创建一个既包含现有缩略图元素又包含其他FirstName属性的公共类。以下是这可能的样子:
public class CandidateItem{
public string FirstName {get; set;}
public string Filepath {get; set;}
}
然后,在你的循环中,创建一个新的CandidateItem并将其添加到列表(即List)。这是修改后的代码:
List<CandidateItem> srclist = new List<CandidateItem>();
foreach(var item in candidateportfolio)
{
if(item.PortfolioID!=0 && item.ChandidateID!=0)
{
CandidateItem candItem = new CandidateItem();
candItem.Filepath = Server.MapPath("~/ePortfolio/PortFolioContent/" + HobbyDetailID + "/Assignments/Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg");
candItem.FirstName = item.FirstName;
if (System.IO.File.Exists(filepath))
{
srclist.Add(candItem);
}
}
}
ViewBag.Thumbnail = srclist;
然后在视图中使用它:
@foreach (var item in ViewBag.Thumbnail as List<CandidateItem>)
{
<img src="@item.Filepath" title="Learner:@item.FirstName" width="150px" height="150px" border="5" style="align:right;margin:10px"/>
}