当我在 ASP.NET MVC 中导航到 /Controller/Action 时,该操作会返回一个视图并且浏览器 URL 会更新。如何保持 URL 不变但同时返回请求的视图?
例如,/Home/Index 将返回索引视图,而 /Home/SignUp 将返回不同的视图。我想确保在两次通话之后,URL 保持不变。
当我在 ASP.NET MVC 中导航到 /Controller/Action 时,该操作会返回一个视图并且浏览器 URL 会更新。如何保持 URL 不变但同时返回请求的视图?
例如,/Home/Index 将返回索引视图,而 /Home/SignUp 将返回不同的视图。我想确保在两次通话之后,URL 保持不变。
您可以通过执行以下几种方法来实现:
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");
您可以在控制器操作中明确指定要返回的视图:
return View("~/Views/SomeController/SomeView.cshtml");
这些将是 GET 调用,并且这种行为是内在的。
如果您想保持在同一个页面上,甚至有一个单页面应用程序,那么您需要考虑使用 ajax 和 http POST 来获得构建页面所需的不同视图。