【发布时间】:2021-10-07 02:53:34
【问题描述】:
我在 MVC5 应用程序的 Route Config 中配置了一个奇怪的路由行为。 所以,实际上我尝试做非常简单的事情 - 更改路由的默认操作。 为此,我更改了路由的默认值,而不是 action = "Index",而是将其更改为我需要的操作 AddUser(查看代码如下)。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "ManageUser",
url: "{controller}/{action}/{id}",
defaults: new { controller = "ManageUser", action = "AddUser", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
我还有下一个控制器:
[Authorize(Roles ="Admin")]
public class ManageUserController : Controller
{
// GET: ManageUser/AddUser
[HttpGet]
public ActionResult AddUser()
{
return View();
}
}
所以,现在我希望每当用户通过 URL: ManageUser/ 他会被重定向到定义的默认操作,但它不会发生,我只是有404 错误。我可以简单地通过添加索引操作来修复它,然后重定向到 AddUser,但它对我来说似乎不正确。有人可以帮我理解我做错了什么吗?
【问题讨论】:
标签: c# asp.net routes asp.net-mvc-5