我正在開發一個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等?
任何反饋將不勝感激。
謝謝。