RedirectToAction внутри метода действия, который создает новый объект в объекте в MVC

У меня есть метод действия, который заключается в следующем:

    public ActionResult CreateNKITemplate(int id)
    {
        var goalcard = createNKIRep.GetGoalCardByID(id);
        createNKIRep.CreateTemplate(goalcard);

        return View();
    }

Этот метод действия создаст новый объект GoalCard внутри моего объекта GoalCard, что означает, что он в основном будет генерировать идентификатор.

Внутри CreateTemplate метод действия, который я хочу удалить return View(); и добавить return RedirectToAction поэтому он перенаправляет на новый идентификатор объекта GoalCard, который был создан

Я хочу перенаправить новый идентификатор объекта GoalCard на:

public ActionResult Edit(int id)
{
   // code..
}

Как я могу это сделать?

В основном: скопируйте и создайте новый объект, а затем перенаправьте новый идентификатор объекта в этот метод действия редактирования, который принимает идентификатор в качестве параметра.

ОБНОВИТЬ:

Принятый ответ решение:

   public ActionResult CreateNKITemplate(int id)
    {
       var goalcard = createNKIRep.GetGoalCardByID(id);
       var copygoalcard = createNKIRep.CreateTemplate(goalcard);
       var GoalCardCopyID = copygoalcard.Id;

       return RedirectToAction(
              "Edit", // Action name
              "CreateNKI", // Controller name
              new { id = GoalCardCopyID }); // Route values

    }

Заранее спасибо!

2 ответа

Ну, определение для RedirectToAction является.

protected internal RedirectToRouteResult RedirectToAction(
    string actionName,
    string controllerName,
    Object routeValues
)

Поэтому мы просто заполняем ваши ценности.

RedirectToAction(
    "Edit",                // Action name
    "GoalCardController",  // Controller name
    new { id = gcId }      // Route values
)

Обратите внимание, что приведенный выше код предполагает, что ваш контроллер называется GoalCardController и что идентификатор хранится в переменной с именем gcId,

Вы просите об этом?

public ActionResult CreateNKITemplate(int id)
{
    var goalcard = createNKIRep.GetGoalCardByID(id);
    createNKIRep.CreateTemplate(goalcard);

    return RedirectToAction("Edit", new { id = id});
}

Это перенаправит вас и даст идентификатор в качестве параметра, вы можете добавить несколько параметров таким же образом, просто разделив их на ",".

Вы также можете указать путь к другому контроллеру, если хотите.

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