【发布时间】:2017-12-18 20:06:00
【问题描述】:
我有一个基本的 MVC 索引视图,带有一个用于搜索的简单文本框,它工作正常。我还想添加一个下拉列表过滤器以从其中一个字段中提取不同的值。我通过使用这样的文章使其工作:
MVC - DropDown containing all distinct values for one field in database?
您只需遍历模型中的不同值。问题是,一旦您选择了一个值并提交了表单,它就会很好地过滤,但现在下拉列表只包含一个值(当前选择的值),因为现在您的视图已被过滤。
是否有一种简单的方法来保留原始值或在视图中使用 Razor 来告诉它重新搜索没有过滤器的模型以填充下拉列表?
这是视图的一部分
@model IEnumerable<KPI_OnlineBilling_MVC.Models.OBProjectRequisition>
@Html.DropDownList("region", new SelectList(Model.Select(i => i.MMRegion).Distinct().ToList()), new { onchange = "this.form.submit();" })
而控制器基本上是
public ActionResult Index(string searchString, string Regions)
{
var requisitions = from s in db.OBProjectRequisitions select s;
if (!String.IsNullOrEmpty(Regions))
{
requisitions = requisitions.Where(s => s.MMRegion.Contains(Regions));
}
return View(requisitions.ToList());
}
【问题讨论】:
-
你能发布你的部分代码吗?喜欢控制器部分和视图?
-
您需要在控制器方法中通过从包含您想要的值的数据库表中生成值来生成您的
SelectList。
标签: c# asp.net asp.net-mvc razor