Asp Mvc数据未从View To Controller传递给Hing Html表单和提交按钮

时间:2015-12-31 18:00:57

标签: c# html asp.net-mvc

这是完整的代码
输入框的值未传递给会话变量

    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>

有人可以告诉我为什么会话变量仍为空

1 个答案:

答案 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州。您的网址代表什么:

  • Page Url:sample.com/Home
  • 提交表格:sample.com/Home?username=userinput

您不想使用Session,这将创建一个本质上将存在于您的服务器内存中的全局变量。这意味着足以降低性能,同时还会与数据产生状态相关的问题。但是,您的代码可以使用正确的表单声明。但是,正确的方法比上面概述的更长。