use*_*925 21 .net c# asp.net-mvc asp.net-mvc-routing
在我的网页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
);
Run Code Online (Sandbox Code Playgroud)
RedirectToAction(有效)
return RedirectToAction("Index", "UsersAdditionalPreviousNames", new { userId = user.Id, applicantId = applicant.Id });
Run Code Online (Sandbox Code Playgroud)
RedirectToRoute(不起作用)
return RedirectToRoute("CreateAdditionalPreviousNames", new { userId = user.Id, applicantId = applicant.Id });
Run Code Online (Sandbox Code Playgroud)
哦,还有另外一件事,你可以制作所需的参数,而不是可选的....如果是这样,怎么样?
dan*_*wig 25
省略参数默认值以生成所需参数:
routes.MapRoute(
"CreateAdditionalPreviousNames", // Route name
"Users/{controller}/{action}/{userId}/{applicantId}", // URL with parameters
new { controller = "UsersAdditionalPreviousNames", action = "Index" }
);
Run Code Online (Sandbox Code Playgroud)
对于路由重定向,请尝试以下方法:
return RedirectToRoute(new
{
controller = "UsersAdditionalPreviousNames",
action = "Index",
userId = user.Id,
applicantId = applicant.Id
});
Run Code Online (Sandbox Code Playgroud)
我从史蒂夫桑德森那里得到的另一个习惯就是没有命名你的路线.每个路由都可以具有空名称,这使您可以显式指定所有参数:
routes.MapRoute(
null, // Route name
"Users/{controller}/{action}/{userId}/{applicantId}", // URL with parameters
new { controller = "UsersAdditionalPreviousNames", action = "Index" }
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49513 次 |
| 最近记录: |