如何在不重命名文件的情况下为 url 中的区域使用不同的名称
How to use different name for Area in url, without renaming files
我有一个名为 Vendor 的区域,可以使用 url:
mysite.com/Vendor/Home/index
此名称仅供内部使用,因此我想仅在 url 中将其更改为 'All';像这样:
mysite.com/All/Home/index
我按如下方式设置 VendorAreaRegistration 文件:
public override string AreaName
{
get { return "All"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
name: AreaName + "_default",
url: AreaName + "/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional };
}
当时的想法是,路由看起来会有所不同,但实际上会搜索 'Vendor'。然而,情况并非如此。现在它找不到我的任何视图,因为它正在 'all' 不存在的文件夹中查找 'index' 文件。
有没有办法做到这一点,更改任何文件或视图的名称?
区域是控制视图 和 和 URL 的位置的东西。但是,路由 仅 与 URL 相关。所以如果你只想 URL 不同而不是文件位置,你应该只更改路由。
public override string AreaName
{
get { return "Vendor"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
name: AreaName + "_default",
url: "All/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional };
}
我有一个名为 Vendor 的区域,可以使用 url:
mysite.com/Vendor/Home/index
此名称仅供内部使用,因此我想仅在 url 中将其更改为 'All';像这样:
mysite.com/All/Home/index
我按如下方式设置 VendorAreaRegistration 文件:
public override string AreaName
{
get { return "All"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
name: AreaName + "_default",
url: AreaName + "/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional };
}
当时的想法是,路由看起来会有所不同,但实际上会搜索 'Vendor'。然而,情况并非如此。现在它找不到我的任何视图,因为它正在 'all' 不存在的文件夹中查找 'index' 文件。
有没有办法做到这一点,更改任何文件或视图的名称?
区域是控制视图 和 和 URL 的位置的东西。但是,路由 仅 与 URL 相关。所以如果你只想 URL 不同而不是文件位置,你应该只更改路由。
public override string AreaName
{
get { return "Vendor"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
name: AreaName + "_default",
url: "All/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional };
}