ASP.NET MVC 4 自定义路由
ASP.NET MVC 4 Custom Routing
我有一个管理功能区域。我希望我的 URL 看起来像这样:
admin/{controller}/{slug}.{id}/{action} (即 admin/user/getoutofmylab.1/edit)
admin/{controller}/{action} (即admin/user,这只是用户控制器的索引页)
当我从我的应用程序的根目录浏览到用户控制器时,我得到 admin/user。用户控制器的编辑操作链接正确生成。但是,如果我从该控制器中的任何其他操作中 link 到索引操作,则会生成 URL:admin/user/{slug}.{id},如果单击,生成 404 未找到错误。
这是我的 AdminAreaRegisration:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRouteLowercase(
"Admin_Applications",
"admin/{controller}/{slug}.{id}/{action}",
new { controller = "Application", action = "Index", id = UrlParameter.Optional, slug = "" },
new string[] { "Web.Portal.Areas.Admin.Controllers" }
);
context.MapRouteLowercase(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "Web.Portal.Areas.Admin.Controllers" }
);
}
怎样才能达到预期的效果?
谢谢
似乎使用 Html.RouteLink 并指定操作有效而不是使用 Html.ActionLink:
@Html.RouteLink("List Applications", "Admin_Default", new { action = "Index" })
我有一个管理功能区域。我希望我的 URL 看起来像这样:
admin/{controller}/{slug}.{id}/{action} (即 admin/user/getoutofmylab.1/edit) admin/{controller}/{action} (即admin/user,这只是用户控制器的索引页)
当我从我的应用程序的根目录浏览到用户控制器时,我得到 admin/user。用户控制器的编辑操作链接正确生成。但是,如果我从该控制器中的任何其他操作中 link 到索引操作,则会生成 URL:admin/user/{slug}.{id},如果单击,生成 404 未找到错误。
这是我的 AdminAreaRegisration:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRouteLowercase(
"Admin_Applications",
"admin/{controller}/{slug}.{id}/{action}",
new { controller = "Application", action = "Index", id = UrlParameter.Optional, slug = "" },
new string[] { "Web.Portal.Areas.Admin.Controllers" }
);
context.MapRouteLowercase(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "Web.Portal.Areas.Admin.Controllers" }
);
}
怎样才能达到预期的效果?
谢谢
似乎使用 Html.RouteLink 并指定操作有效而不是使用 Html.ActionLink: @Html.RouteLink("List Applications", "Admin_Default", new { action = "Index" })