【发布时间】:2018-09-12 22:16:31
【问题描述】:
我正在尝试允许在 MVC 中动态过滤视图。
经过一番折腾后,我尝试了这个......哪种有效
选择控件从模型中提取一组唯一的值来生成选项
foreach (var i in Model.Select(s => new{s.ListId, s.ListName}).Distinct())
{
<option value="@i.ListId">@i.ListName</option>
}
在您进行过滤之前,这可以正常工作。运行过滤器后,您只有已过滤的选项(即,如果您选择在 ListID1 上过滤,则唯一的选择选项是 ListID1)
所以...
在控制器中,我从未过滤的模型中设置了一个列表并将其推到 ViewBag 中
public async Task<IActionResult> Index(int? ListID)
{ var listoflists = (from l in _context.UgPoints
select new { l.ListId, l.ListName } ).Distinct();
ViewBag.listoflists = listoflists;
然后在视图中我看那个
var lst = ViewBag.listoflists as IEnumerable<Draco2018MVC.Models.UgPoints>;
{
foreach (var l in lst)
{
<option value="@l.ListId"> @l.ListName</option>}
}
但第一个变量始终为空。
我假设我错过了一些基本的东西,但我看不到什么。
任何人都可以提出建议
获取一组唯一值以过滤页面其余部分的更好方法
或
我在 viewbag 上做错了什么
谢谢
【问题讨论】:
标签: c# asp.net-mvc drop-down-menu viewbag