我是新来的ASP MVC 3,我有以下问题。我有一个表单发出发送数据到服务器的请求。该表单包含销售人员的DropDownList,此列表从数据库填充。其主要作用是这样的:如何不失去在ASP MVC 3中填充DropDownList的集合?
public ActionResult Index()
{
var viewModel = new OrderSearchViewModel();
viewModel.SalesPeople = GetSalesPeopleList(); // This queries the DB
return View(viewModel);
}
而视图模型看起来是这样的:
public class OrderSearchViewModel
{
public string Id { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public string PostCode { get; set; }
public int SalesPersonId { get; set; }
public string SalesPersonRef { get; set; }
public int OrderType { get; set; }
public string SerialNo { get; set; }
public string CustomerPO { get; set; }
public List<SalesPerson> SalesPeople { get; set; }
}
因此索引视图时,我提交的销售人员列表设置为空的形式(在指数HttpPost方法),我想显示与仍然填充的列表相同的视图。尽管如此,要做到这一点,我将不得不再次查询数据库。避免这样做的最佳做法是什么?
编辑:
我的帖子指数moethod代码是这样的:
[HttpPost]
public ActionResult Index(OrderSearchViewModel viewModel)
{
var result = QueryOrders(viewModel);
//code update the model with the results
return View(viewModel);
}
为什么你认为再次查询数据库不好?另外 - 这里有一些很好的介绍.NET MVC - > http://www.mvcconf.com/videos – Dan 2011-05-04 12:16:00