我已经根据用户角色使用“区域”创建了一个应用程序。有3个区域:管理员,批准者和提交者。如果单击链接,则其在URL中显示区域名称。我不想在URL中显示区域名称。如何实现呢? (带有ASP.NETCORE的MVC)
答案 0 :(得分:0)
通常,您不应从生成的URL中删除Area Name
。 Area Name
用于指示在哪里可以找到控制器。例如,如果您遵循Areas in ASP.NET Core,则在不同的HomeController
中它将有多个不同的Area
。没有区域名称,它将无法使用Home/Index
重定向到特定控制器。
要更改区域中控制器的路由,这也会生成不带区域名称的URL,可以尝试使用Route
属性。
例如,我有一个AdminController
和[Route("AdminIndex")]
[Area("Admin")]
public class AdminController : Controller
{
[Route("AdminIndex")]
public IActionResult Index()
{
return View();
}
}
URL的代码。
<a asp-area="Admin" asp-controller="Admin" asp-action="Index">Admin Index</a>
URL结果。
<a href="/Index">Admin Index</a>