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