我的最终目标是从控制器同时传递一个强类型模型(用于填充下拉菜单)和一个基于搜索查询的模型列表到视图。我要传递到的视图是“Clear()”视图。目前在我的HomeController.cs中,代码如下:
public ActionResult Clear()
{
var states = GetAllStates();
var model = new ProjectClearanceApp.Models.Project();
model.States = GetSelectListItems(states);
return View(model);
}
private IEnumerable<string> GetAllStates()
{
return new List<string>
{
"AL",
// ... (you get the point)
"WY",
};
}
private IEnumerable<SelectListItem> GetSelectListItems(IEnumerable<string> elements)
{
var selectList = new List<SelectListItem>();
foreach (var element in elements)
{
selectList.Add(new SelectListItem
{
Value = element,
Text = element
});
}
return selectList;
}
我在某处读到,这是获取下拉菜单选项列表的最佳方法。现在我也想通过搜索查询向同一视图(Clear.cshtml)传递模型列表。我正在阅读这篇微软教程,通过添加控制器操作来搜索该视图。
public ActionResult Index(string searchString)
{
var movies = from m in db.Movies
select m;
if (!String.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
return View(movies);
}
如何从控制器传递下拉选项列表和符合搜索条件的模型列表到视图中(或者,如何在不从控制器传递这两个列表的情况下实现相同的效果)?
from x in y select x
是没有必要的。 - SLaksselect
语句来在选择时进行搜索,而不是从数据库获取完整的电影列表,然后再搜索呢? - B. Fitzgeraldvar movies = db.Movies.AsQueryable();
- Nkosidb.Movies
,并将其声明为IQueryable<T>
。 - SLaks