Eu tenho um aplicativo existente que não tem áreas. No entanto, estou adicionando uma seção totalmente nova, então criei uma área. Então eu tenho uma área e a área padrão.
Então, por exemplo:
Rota padrão = / Invoice / Create
Rota de área = / TAE / Port / Create
Esses dois links funcionam. No entanto, quando eu navego para a seção da área TAE, todos os links mudam para dentro dessa área da TAE. Por exemplo, TAE / fatura / criar
Eu posso forçá-los a não ter nenhuma área adicionando novos {area = ""} ao link de ação, mas isso envolve a modificação de todos os links no aplicativo.
É possível ter um link de ação sem área especificada sempre ir para a área padrão, independentemente da área em que a página atual está?
global.asax.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { area="", controller = "Home", action = "Index", id = "" }, // Parameter defaults
new string[] { "BankingDB.Controllers" } //namespaces
);
}
TAEAreaRegistration.cs
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"TAE_default",
"TAE/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
Link para a área TAE:
<%= Html.ActionLink("Create", "Create", "Port" , new { area = "TAE"}, new {}) %>
Link de área normal:
<%= Html.ActionLink("Create", "Create", "Invoice") %>
Respostas:
0 para resposta № 1Editar: Eu recomendo que, se você for usar uma área em qualquer lugar, você deve torná-los todos em áreas.
Caso contrário, você pode sobrescrever a extensão com essa assinatura e tornar um padrão para a área = "" então você nunca precisará escrevê-la: D Este é um link para o que você deseja sobrescrever; D
Edição Extra: Só para ter certeza que você entendeu a estrada que eu te dei. você pode facilmente fazer uma nova extensão que chamaria essa função com a área de parâmetro em branco já preenchida. ou sempre sobrescrever lol boa sorte