コントローラから別のビューにリダイレクトすることは可能ですか?
たとえば、すべてのコントローラーは、特定の基準が満たされない場合に別のビューにリダイレクトするコンストラクターを持つカスタムコントローラーを継承します。それが理にかなっていると思います。
回答:
このRedirectToAction()
メソッドを使用すると、リダイレクト先のアクションでビューを返すことができます。これを行う最も簡単な方法は次のとおりです。
return RedirectToAction("Index", model);
次に、Indexメソッドで、目的のビューを返します。
if (true)
{
return View();
}
else
{
return View("another view name");
}
私はこれの条件が何であるか100%確信していませんが、私にとっては上記は直接機能しませんでした、それは近づいたと思いました。モデルでは「ObjectID」と呼ばれるため、ビューに「id」が必要だったからだと思います。
いろいろな情報を持ったモデルがありました。IDが必要です。
上記の前に、新しいSystem.Web.Routing.RouteValueDictionaryオブジェクトを作成し、必要なIDを追加しました。
(System.Web.Routing.)RouteValueDictionary RouteInfo = new RouteValueDictionary();
RouteInfo.Add("id", ObjectID);
return RedirectToAction("details", RouteInfo);
(注:私が作成しなかった問題のMVCプロジェクトなので、正しい「手間のかかる」ビットがどこにあるのかわかりません。)