我试图将传统和属性路由结合在一起。
然而,它并没有按预期工作,可能是因为我错过了做某事。
到目前为止我所拥有的:
路由:
builder.MapRoute("Default", "{controller=Home}/{action=Index}/{id?}");
家庭控制器:
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
属性映射控制器:
[Route("Admin")]
public class AdminLockController : Controller
{
[Route("ControlCenter")]
public async Task<IActionResult> Index()
{
return View();
}
}
_Layout.cshtml
<a asp-controller="Home" asp-action="Index">
<img id="app-logo-image" src="/img/corporate_logo.png"/>
</a>
现在,当视图Home \ Index.cshtml被渲染时,_Layout.cshtml中的链接将变为
<a href="/"></a>
(正确)。
但是当视图AdminLock \ Index.cshtml得到渲染时,链接是<a href=""></a>
(错误)。
所以我想我需要做一些额外的配置,但不知道是什么。任何提示?
更新1: 它在新创建的mvc项目中完美运行。所以在我的项目中它必须是错误的......我会试着找出问题所在......
答案 0 :(得分:0)
找到问题。
我正在使用Smidge作为捆绑器和Minifier。
我在Mvc中间件之前注册了Smidge中间件。这似乎弄乱了路由。我在githup上打开了一个问题。见https://github.com/Shazwazza/Smidge/issues/71
更改订单可解决问题。