ASP.NET Core中如何基于URL路径和路由值生成URL?
ASP.NET 带路径+路由值的内置重定向方案
利用QueryHelpers拼接参数后重定向
这是最直接的内置方案,通过QueryHelpers.AddQueryString方法将路由值附加到已有路径上,再用Redirect跳转:string basePath = "/customer/edit"; var routeValues = new { id = 1, name = "foo" }; string fullUrl = QueryHelpers.AddQueryString(basePath, routeValues); return Redirect(fullUrl);也支持用字典传递路由值:
var paramDict = new Dictionary<string, string> { { "id", "1" }, { "name", "foo" } }; string fullUrl = QueryHelpers.AddQueryString(basePath, paramDict);对应控制器/页面时用专属重定向方法
如果已有路径对应某个控制器Action或Razor Page,直接用框架提供的专属方法更规范:- 控制器场景:
// 对应CustomerController的Edit动作 return RedirectToAction("Edit", "Customer", new { id = 1, name = "foo" }); - Razor Pages场景:
// 对应Pages/Customer/Edit.cshtml页面 return RedirectToPage("/Customer/Edit", new { id = 1, name = "foo" });
- 控制器场景:
框架没有直接提供RedirectXXX(string path, object routeValues)这类一步到位的方法,但通过上述两种方式,完全可以实现需求且无需自行拼接URL。
内容的提问来源于stack exchange,提问作者lonix
相关产品推荐
相关产品推荐

