如何显示使用ViewBag列表(How to display a list using ViewBa

2019-06-24 06:48发布

嗨,我需要使用viewbag.but我不能够做到这一点,以显示数据的列表。
请帮我..
我想这件事情:

 ICollection<Learner> list = new HobbyHomeService().FetchLearner();
 ICollection<Person> personlist = new HobbyHomeService().FetchPerson(list);
 ViewBag.data = personlist;

并且里面的观点:

 <td>@ViewBag.data.First().FirstName</td>

但是,这并不表明在价值,并给出错误说“Model.Person亘古不包含首先一个defibition()”

Answer 1:

在你看来,你必须将它转换回原来的类型。 如果不投,它只是一个对象。

<td>@((ViewBag.data as ICollection<Person>).First().FirstName)</td>

ViewBag是C#4动态类型。 从它返回实体也是动态的,除非施法。 然而,扩展方法一样。首先()和所有其他的LINQ那些不与动态工作 。

编辑 - 解决意见:

如果你想显示整个列表,它是这么简单:

<ul>
    @foreach (var person in ViewBag.data)
    {
        <li>@person.FirstName</li>
    }
</ul>

扩展方法。首先像()将无法正常工作,但这会。



Answer 2:

简单地使用Viewbag数据为IEnumerable <>列表

@{
 var getlist= ViewBag.Listdata as IEnumerable<myproject.models.listmodel>;

  foreach (var item in getlist){   //using foreach
<span>item .name</span>
}

}

//---------or just write name inside the getlist
<span>getlist[0].name</span>


Answer 3:

为了把它放在一起,这是它应该是什么样子:

在控制器:

List<Fund> fundList = db.Funds.ToList();
ViewBag.Funds = fundList;

然后在视图:

@foreach (var item in ViewBag.Funds)
{
    <span> @item.FundName </span>
}


Answer 4:

我有同样的问题,我搜索和搜索..但没有得到结果。
所以我把我的大脑超过驱动器。 我想出了以下的解决方案。 试试这个在查看页面

在页面的头部添加以下代码

 @{
      var Lst = ViewBag.data as IEnumerable<MyProject.Models.Person>;
    }

以显示特定属性中使用下面的代码

@Lst.FirstOrDefault().FirstName

你的情况使用下面的代码。

<td>@Lst.FirstOrDefault().FirstName </td>  

希望这可以帮助...



Answer 5:

只要把一个

 List<Person>

进入ViewBag并在视图转换回列表



Answer 6:

这是我做过什么和它的工作...

C#

ViewBag.DisplaylList = listData; 

JavaScript的

var dispalyList= @Html.Raw(Json.Encode(this.ViewBag.DisplaylList));
for(var i=0;i<dispalyList.length; i++){

 var row = dispalyList[i];
 ..............
 ..............

}



Answer 7:

     //controller  You can use this way

    public ActionResult Index()
    {
      List<Fund> fundList = db.Funds.ToList();
     ViewBag.Funds = fundList;
        return View();
    }




<--View ; You can use this way html-->

@foreach (var item in (List<Fund>)ViewBag.Funds)
{
    <p>@item.firtname</p>
}


文章来源: How to display a list using ViewBag