C# 通过RedirectToAction传递视图模型
我想用RedirectToAction将视图模型从一个操作传递到另一个操作,但是在执行此操作时,我收到一个错误,指出“对象引用未设置为对象的实例”,当时我已经用来自控制器的数据填充了模型,但它在视图中为空。我想将数据从Login传递到LoggedIn。我不想使用查询字符串,因为这很容易被黑客操纵C# 通过RedirectToAction传递视图模型,c#,web,model-view-controller,C#,Web,Model View Controller,我想用RedirectToAction将视图模型从一个操作传递到另一个操作,但是在执行此操作时,我收到一个错误,指出“对象引用未设置为对象的实例”,当时我已经用来自控制器的数据填充了模型,但它在视图中为空。我想将数据从Login传递到LoggedIn。我不想使用查询字符串,因为这很容易被黑客操纵 [HttpPost] public ActionResult Login(User account) { using (TestDBEntities db = new TestDBEntitie
[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
将30倍返回浏览器。您的视图模型将无法经受这种旅行
您可以将视图模型存储在TempData
集合中,
或者只需调用所需的函数:返回mySuperCoolControllerInstance.ActionsRejustMethods(viewModel)
在您的情况下,它将是:
返回this.LoggedIn(model)代码>你的LoggedIn.cshtml是什么样子的?试试这个:()