ASP.NET MVC 4 - MapRoute 配置,以删除已存在默认配置的“/Home”
本文关键字:配置 默认 存在 Home MVC NET MapRoute ASP 删除 | 更新日期: 2023-09-27 18:30:22
我有一个解决方案,其中初始和默认(RouteConfig)页面是"登录/索引"。此页面,其中名称让我们理解用于用户登录系统。成功登录后,被重定向到主页。
登录页面显示的URL是 http://localhost:7037/,在此之后,在"主页"页面是 http://localhost:7037/主页。如何配置控制器 主页在运行索引上不显示"主页"?换句话说,工作等于登录。
我尝试了一些替代方案,但我仍然没有找到在这种特定情况下工作的解决方案。
谢谢
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional },
namespaces: new [] { "Solution.UI.WEB.Controllers" }
);
}
让我们看看我是否理解了问题
您只有一个路由"默认"。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional },
namespaces: new [] { "Solution.UI.WEB.Controllers" }
);
您要做的是将"主页"在 URL 上消失,将控制器"登录"更改为"默认"上的"主页"。它会是这样的:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new [] { "Solution.UI.WEB.Controllers" }
);
因此,在HomeController上的操作"索引"中.cs验证用户是否已记录,如果没有,则重定向到操作("索引","登录")。
希望有帮助。
您可以在主页上通过javascript replaceState
尝试
<script>
(function () {
var path = document.URL.match(/'/'w+(?='?)/g)[0];
window.history.replaceState('string', 'Some Title Text', path.replace('/',''));
})();
</script>