这是完整的代码
输入框的值未传递给会话变量
public ActionResult Index()
{
return View("View11" );
}
Index2代码 下面 这里的数据没有收到
public ActionResult Index2()
{
Session["s1"] = Request.Form["My"];
Session["s2"] = Request.Form["My2"];
return View("View2");
}
View1 Code
html代码View1
<form name="form1" action="/Home/index2" method="post">
<input name="My" type="text" />
<input name="My2" type="text" />
<input id="Submit1" type="submit" value="submit" />
</form>
Index2 Code Ended
View2 Code--->
below
<div>
@Session["s1"]
@Session["s2"]
</div>
有人可以告诉我为什么会话变量仍为空
答案 0 :(得分:0)
您的代码无效,您的代码应如下所示:
<form action="/Home/SubmitForm" method="post">
<input type="text" name="username" />
<input type="submit" value="Submit" />
</form>
以上是基本形式。我们的action
声明使用方法Home
说明SubmitForm
控制器。您可以使用name
属性来允许模型视图控制器(MVC)自动将参数传递给Controller。因此,元素上的name
应该与Controller的参数匹配。
您的控制器代码将简单如下:
public class HomeController
{
public ActionResult SubmitForm(string username)
{
// Do Something
return View();
}
}
我们的Controller
会执行操作,然后返回我们所需的View
州。您的网址代表什么:
您不想使用Session
,这将创建一个本质上将存在于您的服务器内存中的全局变量。这意味着足以降低性能,同时还会与数据产生状态相关的问题。但是,您的代码可以使用正确的表单声明。但是,正确的方法比上面概述的更长。