【发布时间】:2023-03-22 05:45:01
【问题描述】:
这是我的 Controller 类的一部分:
if (ds.Tables.Count > 1)
{
if (ds.Tables[0].Rows.Count > 0)
{
dt = ds.Tables[0];
dr = dt.Rows[0];
TempData["AgentId"] = dr[0].ToString();
TempData["AgentCode"] = dr[1].ToString();
TempData["CenterName"] = dr[2].ToString();
TempData["LevelName"] = dr[3].ToString();
Session["AgentId"] = dr[0].ToString();
Session["LogInSession"] = SessionId;
return RedirectToAction("DashBoard", this.View(new AgentDetails { AgentId = Session["AgentId"].ToString() }));
//return this.View("DashBoard", new AgentDetails { AgentId = Session["AgentId"].ToString()});
}
我想传递这个参数并分别调用这个动作方法。这可能吗?
【问题讨论】:
-
那你有什么问题?为什么要使用
return View()而不是return RedirectToAction()? -
@StephenMuecke 我正在发送值来布局视图,因此在此过程中它不会呈现
@Model.AgentId。所以我正在尝试使用return View()并希望调用该操作方法,以便我的数据可以传递到该视图。 -
当然可以(如果你已经初始化了一个模型并根据你传递给它的
AgentId参数的值设置它的属性。但是你到底为什么要传递一个复杂的对象呢?像 GET 方法(如果AgentDetails的任何属性是复杂的对象或集合,它将失败。它应该是return RedirectToAction("DashBoard", new { AgentId = Session["AgentId"] });重定向到public ActionResult DashBoard(int agentId) -
@StephenMuecke 是的,我明白了。要试试这个。谢谢
标签: c# asp.net-mvc actionmethod