3

次のアクションメソッドがあります。

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

        return View();
    }

このアクション メソッドは、私の GoalCard エンティティ内に新しい GoalCard オブジェクトを作成します。これは、基本的に ID を生成することを意味します。

return View();CreateTemplateアクションメソッド内で削除して追加したいreturn RedirectToActionので、作成された新しいGoalCardオブジェクトIDにリダイレクトします

新しい GoalCard オブジェクト ID を次の場所にリダイレクトしたい:

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

これどうやってするの?

基本的に: 新しいオブジェクトをコピーして作成し、新しいオブジェクト ID を、ID をパラメーターとして受け取るこの編集アクション メソッドにリダイレクトします。

アップデート:

受け入れられた回答の解決策:

   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

    }

前もって感謝します!

4

2 に答える 2

3

さて、の定義RedirectToActionです。

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

したがって、値を入力するだけです。

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

上記のコードは、コントローラーが呼び出さGoalCardControllerれ、id が という変数に格納されていることを前提としていることに注意してくださいgcId

于 2012-05-10T11:34:07.033 に答える
1

あなたはこれを求めていますか?

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

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

これにより、リダイレクトされ、パラメータとしてIDが与えられます。同じ方法で、「、」で割っただけで複数のパラメータを追加できます。

必要に応じて、別のコントローラーへのパスをチャンスにすることもできます。

于 2012-05-10T11:41:44.583 に答える