有没有办法在ViewBag中搜索项目?

时间:2012-06-15 10:47:16

标签: asp.net-mvc

我有一个由View构成的ViewBag.People;

 var query = db.Vw_INTERACTPEOPLE.Select(p => new { p.PersonID, p.Fullname });
 ViewBag.People = new SelectList(query.AsEnumerable(), "PersonID", "FullName");

哪一切都运行正常,但在我看来,我有另一个填充表格的模型,其中一个项目填充是一个JobcontactID(文本框),它链接到PersonID(我没有设计数据库)。所以我想在viewbag中搜索ID,而不是显示它我想显示人名Fullname,那么是否有任何viewbag搜索功能?

2 个答案:

答案 0 :(得分:8)

我建议在ViewModel中传递该信息。从长远来看,它将保持清洁和可维护。这是一篇好文章:Use ViewModels to manage data & organize code in ASP.NET MVC applications

答案 1 :(得分:2)

ViewBag只是dynamic的{​​{1}}包装器(允许在运行时调用的属性成为用于在ViewData中查找值的键)。您可以像这样查询ViewData

ViewData

更新您希望查询选择列表本身吗?

这是剃刀视图中定义的函数:

SelectList peopleSelectList = (from pair in ViewData
                               where pair.Key == "People"
                               select pair.Value);