情景是 有一个GET方法(Create),我们在其中获取ViewBag的集合 并将其传递给View以填充下拉列表。现在当ajax开始表单post(创建帖子)发生时,返回需要相同集合的相同视图,我们填写了GET(Create)方法。我们可以通过任何替代方式避免这种收集的重新填充或在GET方法中重复使用填充的集合;最终回归相同的观点?
示例代码是 -
// GET: Departments/Create
public ActionResult Create()
{
ViewBag.RoleId = new SelectList(db.Role, "Id", "Name");
ViewBag.UserId = new SelectList(db.User, "Id", "Name");
return PartialView();
}
// POST: Departments/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Name,RoleId")] Department department)
{
if (ModelState.IsValid)
{
db.Department.Add(department);
db.SaveChanges();
return PartialView(department);
}
ViewBag.RoleId = new SelectList(db.Role, "Id", "Name", department.RoleId);
ViewBag.UserId = new SelectList(db.User, "Id", "Name");
return PartialView(department);
}
目标是在帖子中避免这两行
ViewBag.RoleId = new SelectList(db.Role, "Id", "Name", department.RoleId);
ViewBag.UserId = new SelectList(db.User, "Id", "Name");
因为一旦数据增加,它可能会增加性能开销。
你能指导一下吗?