MVC后台获取数据和插入数据的三种方式【二】

 MVC模式下,从前端获取数据返回后台,总共有三种形式。下面的代码示例将演示如何将数据返回到后端。

一、首先我们看看表单代码,注意input标签中name的值。

 1 <html>
 2 <head runat="server">
 3     <meta name="viewport" content="width=device-width" />
 4     <title>Register</title>
 5 </head>
 6 <body>
 7     <div>
 8         <form method="post" action="AddUserInfo">
 9             用户名:<input  type="text" name="txtname"/><br />
10             密码:<input  type="password" name="txtpwd"/><br />
11             邮箱:<input  type="text" name="txtEmail"/><br />
12             <input  type="submit" value="添加"/>
13         </form>
14     </div>
15 </body>
16 </html>

二、下面的代码展示如何向后端提交数据

   1. 通过request方法获取前端表单提交的数据。

  

 1  /// <summary>
 2         /// 第一种添加数据的方法,通过request从前端获取数据
 3         /// </summary>
 4         /// <returns></returns>
 5         public ActionResult AddUserInfo2()
 6         {
 7             Models.Userinfo userinfo = new Models.Userinfo();
 8 
 9             userinfo.username = Request["txtname"];
10             userinfo.password = Request["txtpwd"];
11             userinfo.Emil = Request["txtEmail"];
12             userinfo.CreateDate = System.DateTime.Now;
13             Models.wangjin2Entities1 db = new Models.wangjin2Entities1();
14             db.Userinfo.Add(userinfo);
15             if (db.SaveChanges() > 0)
16             {
17                 return Content("添加成功");
18                 //return Response("index");
19             }
20             else
21             {
22                 return Content("添加失败");
23             }
24         }

  2. 第二种方法:方法的参数的名称与表单元素name属性一致,会自动填充

 1  /// <summary>
 2         /// 第二种方法:如果方法的参数的名称与表单元素name属性一致,会自动填充
 3         /// </summary>
 4         /// <returns></returns>
 5         public ActionResult AddUserInfo(string txtname, string txtpwd, string txtEmail)
 6         {
 7             Models.Userinfo userinfo = new Models.Userinfo();
 8             //因为方法的参数的名称和表单元素name属性一致,所以该处可以不使用request方法获取值
 9             //userinfo.username = Request["txtname"];
10             //userinfo.password = Request["txtpwd"];
11             //userinfo.Emil = Request["txtEmail"];
12             userinfo.CreateDate = System.DateTime.Now;
13             Models.wangjin2Entities1 db = new Models.wangjin2Entities1();
14             db.Userinfo.Add(userinfo);
15             if (db.SaveChanges() > 0)
16             {
17                 return Content("添加成功");
18                 //return Response("index");
19             }
20             else
21             {
22                 return Content("添加失败");
23             }
24         }

  3. 第三种方法:表单元素的值和数据库实例的类的属性一致,会自动填充

     3.1 、什么是数据库实例的类:就是指通过EF操作数据库之后生成的类,如下方图2

       图1.                         图2.       

   3.2 第三种形式的代码展示:

 1 /// <summary>
 2         /// 第三种方法:表单元素的值和数据库实例的类的属性一致,会自动填充
 3         /// </summary>
 4         /// <param name="userinfo"></param>
 5         /// <returns></returns>
 6             public ActionResult AddUserInfo1(Userinfo userinfo)
 7             {
 8                 userinfo.CreateDate = System.DateTime.Now;
 9                 Models.wangjin2Entities1 db = new Models.wangjin2Entities1();
10                 db.Userinfo.Add(userinfo);
11                 if (db.SaveChanges() > 0)
12                 {
13                     return Content("添加成功");
14                     //return Response("index");
15                 }
16                 else
17                 {
18                     return Content("添加失败");
19                 }
20             }
原文地址:https://www.cnblogs.com/wangjinya/p/10626887.html