Ответ 1
Я думаю, вам просто нужно вызвать вид, например
return RedirectToAction ( "Список", новый {ID});
с идентификатором необходимо заполнить Детский сад.
Я получил представление List.aspx
, которое связано с классом Kindergarten
В контроллере:
public ActionResult List(int Id)
{
Kindergarten k = (from k1 in _kindergartensRepository.Kindergartens
where k1.Id == Id
select k1).First();
return View(k);
}
Это работает.
Но это не
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(...)
{
//...
Kindergarten k = ...
return RedirectToAction("List", k);
}
Как мне перенаправить на просмотр списка, передав k в качестве модели?
Спасибо!
Я думаю, вам просто нужно вызвать вид, например
return RedirectToAction ( "Список", новый {ID});
с идентификатором необходимо заполнить Детский сад.
Я не верю, что ModelBinding существует при использовании RedirectToAction. Однако ваши лучшие варианты - использовать коллекцию TempData для хранения объекта и получить его в следующем действии.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(...)
{
//...
Kindergarten k = ...
TempData["KG"] = k;
return RedirectToAction("List");
}
В вашем действии списка
public ActionResult List()
{
Kindergarten k = (Kindergarten)TempData["KG"];
// I assume you need to do some stuff here with the object,
// otherwise this action would be a waste as you can do this in the Add Action
return View(k);
}
Примечание. Коллекция TempData содержит только объект для одного последующего перенаправления. После того, как вы сделаете любую переадресацию из Add, TempData [ "KG" ] будет null (если вы не засете ее)
Я не уверен, что вы хотите вызвать RedirectToAction
, потому что это просто приведет к тому, что k будет снова установлено.
Я думаю, вы хотите вызвать View
и передать имя представления и вашей модели.
return View("List", k);
Как сказал Брэндон, вы, вероятно, захотите использовать return View("List", Id)
вместо этого, но проблема, с которой вы сталкиваетесь, заключается в том, что вы передаете k
, вашу модель, методу, который принимает int
в качестве параметра.
Вспомните RedirectToAction
как вызов метода.