我需要将View Model从一个控制器传递给另一个控制器。我使用了以下声明。
return RedirectToAction("FillNewSession", "Account", new { LoginResult = loginResult });
LoginResult是模型" UserLoginProperties"的对象。 FillNewSession控制器在下面。
public ActionResult FillNewSession(UserLoginProperties LoginResult)
{
Session["UserID"] = LoginResult.UserID.ToString();
Session["LoginID"] = LoginResult.LoginID;
Session["UserFullName"] = LoginResult.UserFullName;
Session["UserTypeID"] = LoginResult.UserTypeID;
Session["UserRefNo"] = LoginResult.UserRefNo;
Session["UserNRIC"] = LoginResult.UserNRIC;
return Redirect("~/index.aspx");
}
问题是" FillNewSession" controller执行传递的参数" LoginResult"是空的。
请帮助。
答案 0 :(得分:0)
如果要通过重定向调用传递对象,则需要逐个发送对象的所有属性,如下所示。你不能按原样传递对象。
public class UserLoginProperties
{
public string UserID { get; set; }
public string LoginID { get; set; }
}
public class HomeController : Controller
{
public ActionResult Index()
{
var prop = new UserLoginProperties(){ LoginID = "123", UserID = "abc"};
return RedirectToAction("OtherAction", new { UserID=prop.UserID, LoginID=prop.LoginID });
}
public ActionResult OtherAction(UserLoginProperties prop)
{
// do whatever you want with it here
}
}