我正在开发一个ASP.Net MVC 3 Web应用程序。该应用程序当前连接到具有多个表的数据库,其中两个是Category(catId,Name)和Site(siteID,Name)。ASP.Net MVC 3 ViewModel与下拉列表
我希望创建一个包含两个下拉列表的视图,每个表提供一个表,以便用户可以选择并运行报表。要做到这一点,我创建一个视图模型来表示两个下拉列表
public class ReportSiteCategorySearchViewModel
{
public SelectList categoryList { get; set; }
public SelectList siteList { get; set; }
}
然后在我的控制器返回视图模型我有以下
public ActionResult getEquipmentByCategoryAndSite()
{
ReportSiteCategorySearchViewModel viewModel = new ReportSiteCategorySearchViewModel
{
categoryList = new SelectList(categoryService.GetAllCategories().ToList(), "categoryID", "categoryTitle"),
siteList = new SelectList(siteService.GetAllSites().ToList(), "siteID", "title")
};
return View(viewModel);
}
然后我传递给它取这个观点viewModel并写出价值的下拉
<div>
<label for="ddlSite">Sites</label>
@Html.DropDownList("ddlSite", Model.siteList, "All Sites")
<label for="ddlCatgeory">Categories</label>
@Html.DropDownList("ddlCatgeory", Model.categoryList, "All Categories")
</div>
这个作品,但是,我不知道这是最好的方式来做到这一点。我只是想知道我的方法是否正确,有没有更好的方法来做到这一点?也就是说,如果我需要从其他表中添加5/6以上的下拉列表,应该只添加到当前的viewModel等?
任何反馈将不胜感激。
谢谢。