在我的网页1的控制器中,我想重定向到网页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 });哦,还有一件事,你能让参数成为必需的,而不是optional....if,那么,怎么做呢?
发布于 2012-01-21 00:22:21
省略参数默认值以使参数成为必需的:
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" }
);https://stackoverflow.com/questions/8944355
复制相似问题