1

我需要在另一个 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

然后在视图中我像这样使用它:

 @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 作为列表。我不能在这个列表中运行另一个列表。请告诉我我应该怎么做。

4

2 回答 2

5

如果您想要一个包含两者FirstName和路径的列表,例如照片,您可以创建一个新类:

public class ThumbnailModel
{
    public string FirstName { get; set; }
    public string PhotoPath { get; set; }
}

现在您可以List<Thumbnail>ViewBag.

List<Thumbnail>但我建议只使用包含属性的相关模型创建一个强类型视图。

于 2012-05-23T13:47:06.813 回答
1

用户1274646,

您最好的选择是创建一个包含现有缩略图元素和附加 FirstName 属性的公共类。这可能是这样的:

public class CandidateItem{
  public string FirstName {get; set;}
  public string Filepath {get; set;} 
}

然后,在您的循环中,创建一个新的 CandidateItem 并将其添加到列表(即列表)中。这是修改后的代码:

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"/> 
}
于 2012-05-23T13:47:16.663 回答