MVC+EF添加数据。


1、在Test控制器中添加一个RegiSter()方法。

  

2、在Register()方法上右键添加视图。在添加的视图中添加form表单,Form表单中添加表单元素完成注册。

   

3、用Ajax完成注册。

     

4、从上图可以看出是Post请求,然后请求的地址是Test控制器中的AddUserInfo()方法,那么在Test控制器中添加AddUserInfo()方法,完成对数据的添加操作。

      我在Models文件夹中添加了已经把数据库中的UserInfo表通过EF映射到程序中了。

      

 Test控制器中的AddUserInfo方法执行的代码。

 1 public ActionResult AddUserInfo()
 2 {
 3     //实例化数据操作类。
 4     Models.MVC_TestEntities2 db = new  Models.MVC_TestEntities2();
 5     db.Configuration.ValidateOnSaveEnabled = false;
 6     //实例化UserInfo对象。
 7     Models.UserInfo userInfo = new Models.UserInfo();
 8     //通过Request.Form["txtName"]获取文本框中的值,且未userInfo对象赋值。
 9     userInfo.UserName = Request.Form["txtName"];
10     userInfo.UserPassword = Request["txtPassword"];
11     userInfo.UserEmail = Request["txtEmail"];
12     userInfo.UserRegTime = DateTime.Now;
13     //标记为添加标记。
14     db.UserInfo.Add(userInfo);
15     //如果返回的数据>0,则添加成功,否则添加失败。
16     if (db.SaveChanges() > 0)
17     {
18         //返回ActionResult类型的结果。
19         return Content("添加成功!");
20     }
21     else
22     {
23         //返回ActionResult类型的结果。
24         return Content("添加失败!");
25     }
26 }

5、调用。在地址栏中输入Test控制器中的Register方法:http://localhost:24392/Test/Register ,这个时候会弹出图1的界面,当输入好用户信息后,点击添加按钮,成功后,返回图2内容。

    

     执行流程:当在地址栏中输入http://localhost:24392/Test/Register的时候,会先执调用Test控制器中的Register()方法所对应的视图,也就是图1,当把用户信息填写完后,店家图1中的添加按钮的时候会发送一次Ajax请求,请求的页面是Test控制器中的AddUserInfo()

     方法(Test.AssUserInfo),然后在Test控制器中接收表单的数据,调用EF中从数据库中映射过来的表,完成数据的添加,当添加成功后,返回一个字符串到Register方法所对应的视图Register.aspx。

6、AddUserInfo()还可这样写:  

 1 /// <summary>
 2 /// 如果方法的参数的名称与表单中元素的name属性的值一致的话会自动填充,这个时候不用使用Request进行接收了。
 3 /// </summary>
 4 /// <param name="txtName"></param>
 5 /// <param name="txtPassword"></param>
 6 /// <param name="txtEmail"></param>
 7 /// <returns></returns>
 8 public ActionResult AddUserInfo(string txtName,string txtPassword,string txtEmail)
 9 {
10     //实例化数据操作类。
11     Models.MVC_TestEntities2 db = new Models.MVC_TestEntities2();
12     db.Configuration.ValidateOnSaveEnabled = false;
13     //实例化UserInfo对象。
14     Models.UserInfo userInfo = new Models.UserInfo();
15     //通过Request.Form["txtName"]获取文本框中的值,且未userInfo对象赋值。
16     userInfo.UserName = txtName;
17     userInfo.UserPassword = txtPassword;
18     userInfo.UserEmail = txtEmail;
19     userInfo.UserRegTime = DateTime.Now;
20     //标记为添加标记。
21     db.UserInfo.Add(userInfo);
22     //如果返回的数据>0,则添加成功,否则添加失败。
23     if (db.SaveChanges() > 0)
24     {
25         //返回ActionResult类型的结果。
26         return Content("添加成功!");
27     }
28     else
29     {
30         //返回ActionResult类型的结果。
31         return Content("添加失败!");
32     }
33 }

7、AddUserInfo还可这样写:

     先将表单元素中的name属性改成对应的实体属性。

     

 1 /// <summary>
 2 /// 如果表单元素的name属性的值与实体类中属性的名字保持一致,那么表单的数据会自动赋值给实体中的属性。
 3 /// </summary>
 4 /// <param name="userInfo"></param>
 5 /// <returns></returns>
 6 public ActionResult AddUserInfo(Models.UserInfo userInfo)
 7 {
 8     //实例化数据操作类。
 9     Models.MVC_TestEntities2 db = new Models.MVC_TestEntities2();
10     db.Configuration.ValidateOnSaveEnabled = false;
11     //标记为添加标记。
12     db.UserInfo.Add(userInfo);
13     //如果返回的数据>0,则添加成功,否则添加失败。
14     if (db.SaveChanges() > 0)
15     {
16         //返回ActionResult类型的结果。
17         return Content("添加成功!");
18     }
19     else
20     {
21         //返回ActionResult类型的结果。
22         return Content("添加失败!");
23    }
24 }

8、为方法添加特性标签指定get请求或者post请求。

 1 [HttpGet]//指定get请求。
 2 public ActionResult AddUserInfo()
 3 {
 4     //实例化数据操作类。
 5     Models.MVC_TestEntities2 db = new Models.MVC_TestEntities2();
 6     db.Configuration.ValidateOnSaveEnabled = false;
 7     //实例化UserInfo对象。
 8     Models.UserInfo userInfo = new Models.UserInfo();
 9     //通过Request.Form["txtName"]获取文本框中的值,且未userInfo对象赋值。
10     userInfo.UserName = Request.Form["txtName"];
11     userInfo.UserPassword = Request["txtPassword"];
12     userInfo.UserEmail = Request["txtEmail"];
13     userInfo.UserRegTime = DateTime.Now;
14     //标记为添加标记。
15     db.UserInfo.Add(userInfo);
16     //如果返回的数据>0,则添加成功,否则添加失败。
17     if (db.SaveChanges() > 0)
18     {
19         //返回ActionResult类型的结果。
20         return Content("添加成功!");
21     }
22     else
23     {
24         //返回ActionResult类型的结果。
25         return Content("添加失败!");
26     }
27 }
28 
29 [HttpPost]//指定post请求。
30 public ActionResult AddUserInfo(string txtName,string txtPassword,string txtEmail)
31 {
32     //实例化数据操作类。
33     Models.MVC_TestEntities2 db = new Models.MVC_TestEntities2();
34     db.Configuration.ValidateOnSaveEnabled = false;
35     //实例化UserInfo对象。
36     Models.UserInfo userInfo = new Models.UserInfo();
37     //通过Request.Form["txtName"]获取文本框中的值,且未userInfo对象赋值。
38     userInfo.UserName = txtName;
39     userInfo.UserPassword = txtPassword;
40     userInfo.UserEmail = txtEmail;
41     userInfo.UserRegTime = DateTime.Now;
42     //标记为添加标记。
43     db.UserInfo.Add(userInfo);
44     //如果返回的数据>0,则添加成功,否则添加失败。
45     if (db.SaveChanges() > 0)
46     {
47         //返回ActionResult类型的结果。
48         return Content("添加成功!");
49     }
50     else
51     {
52         //返回ActionResult类型的结果。
53         return Content("添加失败!");
54     }
55 }

End。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM