[英]ASP.NET Core MVC wrong link is generated
我有一个带有此代码的 controller。 我希望所有操作都是/Action/Controller
或/{culture}/Action/Controller
除了 Login 应该是/Login
或/{culture}/Login
。 路线工作正常,但链接始终生成为/Accounts/Login
或/{culture}/Accounts/Login
...
[Route("[controller]/[action]")]
[Route("/[controller]/[action]")]
public class AccountsController : Controller
{
[Route("/Login", Order = 0)]
[Route("/{culture}/Login", Order = 1)]
public IActionResult Login(short? showLostPasswordInfo)
{
return View(model);
}
}
链接看起来像这样
<a asp-action="Login">...</a> //outputs /Accounts/Login
我希望它指向 /Login 但它不断生成错误的链接。
Startup.cs 中的配置如下所示
app.UseEndpoints(endpoints =>
{
endpoints.MapHealthChecks("/health");
endpoints.MapControllers();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action}");
endpoints.MapControllerRoute(
name: "cultureDefault",
pattern: "{culture:culture}/{controller}/{action}");
});
});
我找到了解决方案。 AccountsController 中有另一个用于 HttpPost 的 Login 方法,它没有任何 Route 属性。 向第二种方法添加相同的属性解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.