UDP*_*UDP 3 c# asp.net asp.net-mvc
我有多个角色,我需要通过Return RedirectTo Action方法将这些角色传递给另一个视图,
我的守则
string[] roles = new string[] { "Admin", "Supervisor", "Interviewer" };
if (roles.Count() > 1)
{
return RedirectToAction("LoginAs","Admin",new{@roles = roles});
}
Run Code Online (Sandbox Code Playgroud)
当我在LoginAs视图中这样传递时,向我显示这样的Url,
http://localhost:33883/Admin/LoginAs?roles=System.String[]
Run Code Online (Sandbox Code Playgroud)
但是没有通过的价值观.
选项1 :
public ActionResult Index()
{
string[] roles = new string[] { "Admin", "Supervisor", "Interviewer" };
var routeParameters = new RouteValueDictionary();
for (int i = 0; i < roles.Length; i++)
{
routeParameters["roles[" + i + "]"] = roles[i];
}
return RedirectToAction("Test", "Student", routeParameters);
}
public ActionResult Test(string[] roles)
{
return View("Index");
}
Run Code Online (Sandbox Code Playgroud)
输出 -

选项2:
使用TempData
public ActionResult Index()
{
string[] roles = new string[] { "Admin", "Supervisor", "Interviewer" };
TempData["data"] = roles;
return RedirectToAction("Test", "Student");
}
public ActionResult Test()
{
string[] roles = (string[])TempData["data"];
return View("Index");
}
Run Code Online (Sandbox Code Playgroud)
输出 -

选项3:
使用Session
public ActionResult Index()
{
string[] roles = new string[] { "Admin", "Supervisor", "Interviewer" };
Session["data"] = roles;
return RedirectToAction("Test", "Student");
}
public ActionResult Test()
{
string[] roles = (string[])Session["data"];
return View("Index");
}
Run Code Online (Sandbox Code Playgroud)
输出 -

| 归档时间: |
|
| 查看次数: |
920 次 |
| 最近记录: |