1

いくつかのデータをデータベースに保存した後、新しく作成された userId をデータベースから取得し、それを次のビューに送信する必要があります。ReditectToAction を使用して指示し、値を送信しています。値がリダイレクトされていることを確認しましたが、AccountSetup に入るモデルが null であるため、値を取得する方法がわかりません。どこが間違っていますか?

ID を送信するメソッド:

            var id = user.UserId;

            var accountModel = new AccountViewModel
            {
                UserId = id
            };

            return RedirectToAction("AccountSetup", "Home", accountModel.UserId);
        }

accountModel.userId に値があることをデバッグで確認しました。

ID を受け取るメソッド:

    public ActionResult AccountSetup(AccountViewModel model)
    {
        int id = model.UserId;

モデルはヌルです。

4

2 に答える 2

2
return RedirectToAction("AccountSetup", "Home", accountModel.UserId);

アクションが期待するモデルを返すのではなく、id 値だけを返します。モデル バインダーは、この値をAccountViewModel.UserIdにバインドできません。おそらくid、デフォルト ルートのパラメーターにバインドします。実際にはタイプのモデルを期待しているので、インスタンスAccountViewModelを送信する必要があります。AccountViewModel

return RedirectToAction("AccountSetup", "Home",
                        new AccountViewModel {UserId = accountModel.UserId});
于 2013-04-27T19:19:53.730 に答える
0

TempDataリダイレクト中に何かを保存するために使用する必要があります。

TempData["MyModel"] = accountModel;
return RedirectToAction("AccountSetup", "Home");

そして、他のアクションで:

var accountModel = (AccountViewModel)TempData["MyModel"];
int id = accountModel.UserId;
于 2013-04-27T19:20:08.370 に答える