You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core:如何获取AccountController中Register动作的访问路由路径?

解决方法

问题核心在于两点:你的POST动作未匹配GET端的自定义路由,同时表单默认会提交到控制器+动作的默认路径(Account/Register)。按以下步骤修改即可解决:

1. 给POST动作添加对应自定义路由

将GET动作上的四个路由属性同步加到POST动作上,让POST请求能匹配/go、/ex、/men、/ing这些路径:

[AllowAnonymous]
[HttpPost("/go", Order = 2)]
[HttpPost("/ex", Order = 2)]
[HttpPost("/men", Order = 2)]
[HttpPost("/ing", Order = 2)]
public async Task<IActionResult> Register(RegisterViewModel model)
{
    model.Code = Request.Path.Value; // 现在会返回实际访问的路径,比如/men
    var platformResponse = await _factory.RegisterAsync(model);

    return View();
}

2. 确保表单提交到当前路径

在Register视图中,将表单的action设置为当前请求的路径,避免表单默认提交到Account/Register:

<form action="@Request.Path" method="post">
    <!-- 你的表单字段 -->
</form>

如果使用Tag Helper,也可以这样写:

<form asp-action="Register" asp-route="" method="post">
    <!-- 表单字段 -->
</form>

完成以上修改后,POST请求的路径会和用户访问的GET路径保持一致,Request.Path.Value就能正确获取到/men、/ing这类实际访问的路由路径。

内容的提问来源于stack exchange,提问作者jrsometing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:15:32