如何在POST方法中重用一个集合,该方法在返回相同视图时填充GET方法

时间:2018-02-05 12:31:39

标签: c# asp.net-mvc asp.net-mvc-partialview ajax.beginform

情景是 有一个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");

因为一旦数据增加,它可能会增加性能开销。

你能指导一下吗?

0 个答案:

没有答案