[英]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.