Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过RedirectToAction传递视图模型_C#_Web_Model View Controller - Fatal编程技术网

C# 通过RedirectToAction传递视图模型

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

我想用RedirectToAction将视图模型从一个操作传递到另一个操作,但是在执行此操作时,我收到一个错误,指出“对象引用未设置为对象的实例”,当时我已经用来自控制器的数据填充了模型,但它在视图中为空。我想将数据从Login传递到LoggedIn。我不想使用查询字符串,因为这很容易被黑客操纵

[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是什么样子的?试试这个:()