我有一个名为IHateYou
的控制器,里面有大量的视图,我可以通过输入...\IHateYou\User1
来访问。我需要在url中将控制器的名称更改为Users
,但其余部分保持不变,因此用户仍然可以通过...\Users\User1
输入控制器。我已尝试添加路由,但我仍然可以通过先前的方式访问它。
答案 0 :(得分:0)
我认为您应该为默认路线添加约束
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "IHateYou", action = "Index", id =UrlParameter.Optional },
constraints: new{ controller= "[^IHateYou]" });
默认路线总是匹配控制器/动作/ id
答案 1 :(得分:-3)
您的路线配置应该有以下路线。
routes.MapRoute(
name: "Custom",
url: "Users/{action}/{id}",
defaults: new { controller = "IHateYou", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "IHateYou", action = "Index", id = UrlParameter.Optional }
);
如果您没有索引视图,可以将默认操作更改为您想要的任何内容。