[英]How to use RedirectToAction while passing view model to a view with different route
[英]passing a view model with RedirectToAction
我想使用 RedirectToAction 将视图模型从一个操作传递到另一个操作,但是在执行此操作时,我收到一条错误消息,指出“对象引用未设置为对象的实例”,因为我已经用数据填充了模型来自控制器,但它在视图中为空。 我想将数据从登录传递到登录。 我不想使用查询字符串,因为这很容易被黑客操纵
[HttpPost]
public ActionResult Login(User account)
{
using (TestDBEntities db = new TestDBEntities())
{
var user = db.Users.SingleOrDefault(u => u.Email == account.Email && u.Password == account.Password);
if (user != null)
{
Session["USER"] = user.UserID;
var model = new UserAccountViewModel{UserAccount = user};
return RedirectToAction("LoggedIn", model);
}
ModelState.AddModelError("", "User credentials are invalid");
}
return View("Login");
}
public ActionResult LoggedIn(UserAccountViewModel model)
{
return View(model);
}
RedirectToAction
将 30x 踢回浏览器。 你的视图模型不会在那种旅行中幸存下来。
您可以将您的视图模型存储在TempData
集合中,或者只是调用您想要的函数: return mySuperCoolControllerInstance.ActionsAreJustMethods(viewModel)
在您的情况下,它将是: return this.LoggedIn(model);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.