Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Asp.net mvc 3 保存到会话并在单击按钮时重定向_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 保存到会话并在单击按钮时重定向

Asp.net mvc 3 保存到会话并在单击按钮时重定向,asp.net-mvc-3,Asp.net Mvc 3,A有一个简单的网站,有4个视图(个人信息、邮局、订单详细信息、评论)。所有视图都强类型化为名为Information的模型。我需要做的是: 当我在PersonalInfo视图中单击Next按钮时,我需要将一些数据存储到会话中 之后,我必须被重定向到下一个视图OrderDetails 下面是我如何试图解决这个问题的一个例子,但它不起作用 控制器: public ActionResult PersonalInfo(string button, Models.Information FirstNa

A有一个简单的网站,有4个视图(个人信息、邮局、订单详细信息、评论)。所有视图都强类型化为名为Information的模型。我需要做的是:

  • 当我在PersonalInfo视图中单击Next按钮时,我需要将一些数据存储到会话中
  • 之后,我必须被重定向到下一个视图OrderDetails
下面是我如何试图解决这个问题的一个例子,但它不起作用

控制器:

public ActionResult PersonalInfo(string button, Models.Information FirstName, Models.Information LastName)
    {
        if (button == "Next")
        {
            HttpContext.Session["FirstName"] = FirstName;
            HttpContext.Session["LastName"] = LastName;

            return RedirectToAction("PostOffice", "Home");
        }
        else if (button == "Back")
        {
            return RedirectToAction("OrderDetails", "Home");
        }
        return View();
    }
视图中的按钮:

<div>
<button name="button" value="Next">Next</button>
<button name="button" value="Back">Back</button></div>

听起来您甚至没有生成请求来访问您的
PersonalInfo
操作

让你的按钮改为提交按钮

<input type="submit" name="button" value="Prev" />
<input type="submit" name="button" value="Next" />

最后,由于您正在进行多步骤表单处理,因此可能会对您有所帮助。

它是如何工作的?无论单击哪个按钮,都不会发生重定向。我不确定会话tho中是否存储了某些内容。而且所有验证字段都标记为红色,即使我是第一次访问该网站并且没有键入任何内容。您是否使用调试器访问
PersonalInfo
操作?你的按钮有javascript来触发动作吗?我通过索引站点上的菜单访问PersonalInfo。页面显示正确。不,我不使用javascript。难道没有任何方法可以使用控制器吗?我会使用TempData,但我的作业需要使用Session。我只能在表单处理的最后一个步骤中使用TempData,在该步骤中,我在一个视图中显示所有信息。除此之外,还有很多有用的信息。非常感谢。
<input type="submit" name="button" value="Prev" />
<input type="submit" name="button" value="Next" />
TempData["FirstName"] = FirstName;
TempData["LastName"] = LastName;