ASP.NET MVC で /Controller/Action に移動すると、アクションはビューを返し、ブラウザーの URL が更新されます。URL をそのままにして、要求されたビューを同時に返すにはどうすればよいですか?
たとえば、/Home/Index は Index のビューを返しますが、/Home/SignUp は別のビューを返します。両方の呼び出しの後、URL が同じままであることを確認したい。
ASP.NET MVC で /Controller/Action に移動すると、アクションはビューを返し、ブラウザーの URL が更新されます。URL をそのままにして、要求されたビューを同時に返すにはどうすればよいですか?
たとえば、/Home/Index は Index のビューを返しますが、/Home/SignUp は別のビューを返します。両方の呼び出しの後、URL が同じままであることを確認したい。
コントローラー アクションで、返したいビューを明示的に指定できます。
return View("~/Views/SomeController/SomeView.cshtml");
これらは GET 呼び出しであり、この動作は本質的です。
同じページにとどまりたい場合、または単一ページのアプリケーションを使用する場合でも、ページを構築するために必要なさまざまなビューを取得するために ajax と http POST を使用することを検討する必要があります。
これは、いくつかのアプローチを実行することで実現できます。
1.ルート設定を構成する
routes.MapRoute(
name: null,
url: "Home/FirstMethod",
defaults: new { controller = "Home", action = "FirstMethod" }
);
routes.MapRoute(
name: null,
url: "Home/SecondMethod",
defaults: new { controller = "Home", action = "FirstMethod" }
);
2. カスタム MVCTransferResult の使用: ASP.NET MVC で Server.Transfer をシミュレートする方法は?
3. ビューを明示的に指定できます。次に例を示します。
return View(viewName: "Contact");