ASP.NET MVC2: как перенаправить на GET Details / 5 после добавления POST - PullRequest
1 голос
/ 12 января 2011

Я абсолютный новичок в C #, ASP.NET и MVC2, и это означает, что я просто упускаю что-то исключительно простое.Я попытался найти его, но здесь снова мне не удалось найти правильные заклинания ни для Google, ни для StackOverflow, поэтому возникает вопрос:

Я пытаюсь создать базовый контроллер с двумя действиями:

[HttpPost]
public ViewResult Create(CustomerCreateData data)
{
    CustomerRecord cr = //create customer record from input data...

    return RedirectToAction("Details");
}

public ViewResult Details(int id)
{
    CustomerRecord cr = // load customer record with specified id...
    return View(cr);
}

Моя идея заключается в том, что после успешного POST /Customer/Create пользователь будет перенаправлен на GET /Customer/Details/42, где 42 - это идентификатор вновь созданной записи клиента.это в ASP.NET MVC2

PS - я видел бесчисленное множество примеров перенаправления на действие "Index", но этого недостаточно.

Ответы [ 2 ]

4 голосов
/ 12 января 2011

Вы можете передавать данные в метод RedirectToAction:

return RedirectToAction("Details", new { id = cr.Id });

Предполагается, что у вас есть определенный маршрут, например, Customer/Details/{id} или у вас еще есть маршрут по умолчанию {controller}/{action}/{id}.

1 голос
/ 12 января 2011

В Create ActionResult после успешного создания выполните действие, подобное этому (или действительно это, например):

return RedirectToAction("Details", new { Id = cr.Id });

Этот код создает перенаправление на Details / id / {cr.Id}.Извините за плохой английский (я итальянец)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...