MVC 使用路由值而不是查询字符串进行重定向

MVC to redirect with route values instead of query string

我正在开发一个示例应用程序,其中有一个注册和详细操作。 我想在注册新团队后重定向到详细信息视图。

我的 Regsiter post 代码如下所示;

[HttpPost]
public async Task<ActionResult> Register(TeamEditorVm teamRegisterVm)
{
    if (ModelState.IsValid)
    {
        var teamDetailVm = await Managers.TeamManager.CreateAsync(teamRegisterVm);
        return RedirectToAction("Details", new { id = teamDetailVm.Id });
    }

    return View(teamRegisterVm);
}

有没有办法强制 RedirectToAction("Details", new { id = teamDetailVm.Id }); 使用 URL 的路由值,例如

hxxps://test.com/team/detail/1

而不是查询字符串?

hxxps://test.com/team/detail?id=1
RedirectToAction("Details", new { id = teamDetailVm.Id });

这会将您重定向到“详细信息”操作,如果您的路由包含 id 作为默认参数,那么它将向您显示

hxxps://test.com/team/detail/1

而不是作为查询参数。我刚刚在 MVC5 中对其进行了测试,它对我有用。请检查您的路由。