たとえば、「製品」領域と、「ホーム」と「スイート」の2つのコントローラーがあります(このシナリオでは「スイート」のように動作するコントローラーがさらにあります)。
URLが次のようになるように「ProductAreaRegistration.cs」を構成しました。
\ Products \
(コントローラー= "ホーム"、アクション= "インデックス")\ Products \ Suite
(コントローラー= "スイート"、アクション= "インデックス")\ Products \ Suite \ TechnicalSpecification
(コントローラー= "Suite"、アクション= "TechnicalSpecification")
アクション「TechnicalSpecification」はそのエリアのすべてのコントローラーに表示されますが、「Home」コントローラーがそのコントローラーであり、実際に主な作業を行います。「Suite」のような他のコントローラーは、コントローラー関連の処理を実行してから、「Home」、「TechnicalSpecification」にリダイレクトします。
// Suite-Controller
public ActionResult TechnicalSpecification()
{
//doSomethingThatOnlyThisControllerHasToDo();
return RedirectToAction("TechnicalSpecification", "Home", new { specificationId = 45 });
}
// Home-Controller
public ActionResult TechnicalSpecification(int specificationId)
{
Object model = getModelByIdWithSomeMethod(specificationId);
//DoEvenMoreThingsHere();
return View(model);
}
私の問題は、「Suite」、「TechnicalSpecification」のリンクを見ると、
\ Products \ Suite\TechnicalSpecificationが表示されていることです。
ただし、そのリンクをクリックすると、アドレスバーのURLが
\ Products \ TechnicalSpecification?specificationId=45に変わります。
リダイレクトのため。前述のようにURLを維持したいと思います。
したがって、「return RedirectToAction(...)」の代わりに「returnViewResultFromOtherController(...)」のようなものがあり、リダイレクトされませんか?
あなたがアイデアを得たことを願っています。
そうでない場合は、お問い合わせください!
前もって感謝します!