Как повторно использовать коллекцию в методе POST, которая заполняется в методе GET при возврате того же представления

Сценарий: есть метод GET (Create), в котором мы получаем коллекцию в ViewBag и передаем ее в View для заполнения раскрывающегося списка. Теперь, когда происходит запись формы ajax begin (Create 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 ответов

Другие вопросы по тегам