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。