我想使用 RedirectToAction 将 View 模型从一个操作传递到另一个操作,但是在执行此操作时,当我已经填充了模型包含来自 Controller 的数据,但在 View 中为空。我想将数据从登录传递到登录。我不想使用查询字符串,因为这很容易被黑客操纵
[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 倍踢回到浏览器。您的 View 模型将无法承受这种旅行。
您可以将 View 模型存储在 TempData
集合中,
或者只是调用您想要的函数:return mySuperCoolControllerInstance.ActionsAreJustMethods(viewModel)
在您的情况下,它将是:return this.LoggedIn(model);
关于c# - 使用 RedirectToAction 传递 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60609613/