gpt4 book ai didi

c# - RedirectToAction 和 RedirectToRoute

转载 作者:IT王子 更新时间:2023-10-29 04:34:51 25 4
gpt4 key购买 nike

在我的网页 1 Controller 中,我想重定向到网页 2,传递 2 个变量。

我尝试使用 RedirectToRoute,但无法正常工作;显示错误的 URL。然后我改用 RedirectToAction。

我的代码:

路由

routes.MapRoute(
"CreateAdditionalPreviousNames", // Route name
"Users/{controller}/{action}/{userId}/{applicantId}", // URL with parameters
new { controller = "UsersAdditionalPreviousNames", action = "Index", userId = UrlParameter.Optional, applicantId = UrlParameter.Optional } // Parameter defaults
);

RedirectToAction(有效)

return RedirectToAction("Index", "UsersAdditionalPreviousNames", new { userId = user.Id, applicantId = applicant.Id });

RedirectToRoute(不起作用)

return RedirectToRoute("CreateAdditionalPreviousNames", new { userId = user.Id, applicantId = applicant.Id });

哦,还有一件事,你能不能让参数成为必需的,而不是可选的......如果是这样,怎么做?

最佳答案

省略参数默认值使参数成为必需的:

    routes.MapRoute(
"CreateAdditionalPreviousNames", // Route name
"Users/{controller}/{action}/{userId}/{applicantId}", // URL with parameters
new { controller = "UsersAdditionalPreviousNames", action = "Index" }
);

对于路由重定向,试试这个:

return RedirectToRoute(new 
{
controller = "UsersAdditionalPreviousNames",
action = "Index",
userId = user.Id,
applicantId = applicant.Id
});

我从 Steve Sanderson 那里学到的另一个习惯是不命名你的路线。每个路由都可以有一个空名称,这使您可以明确指定所有参数:

    routes.MapRoute(
null, // Route name
"Users/{controller}/{action}/{userId}/{applicantId}", // URL with parameters
new { controller = "UsersAdditionalPreviousNames", action = "Index" }
);

关于c# - RedirectToAction 和 RedirectToRoute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com