-------请求的这个路径【这是约定好的】我们在action="/User/Register";为什么不写UserController呢,这也是约定好的没折
http://location:8888/User/Index;这就是我们要请求的注册页面的路径
首先我们得创建一个MVCApplication2这个应用程序,现在呢已经是MVC4了哈。它们的原理都差不多,MVC4呢性能上比较好点。创建好这个MVCApplication时,程序里面自带了有三个重要的文件夹。第一个是控制器Controllers【处理用户交互,从model中获取数据并将数据传给指定的View视图】,第二个是视图Views【是用户接口层组件,主要是将model中的数据展示给用户,ASPX和ASCX文件被用来处理视图的职责】,第三是实体Model【主要是存储或者是处理数据的组件】
1.在Controllers里面创建一个用户控制器,当创建时会有一个默认的文件名称,DefaultController。我们只需要改前面的名字就行 UserController,这是微软前辈的约定,因为当创建好这个控制器的时候,里面会给我创建一个视图
- // GET: /User/
- public ActionResult Index()
- {
- return View(); //这个视图也继承自ActionResult
- }
2.我们就把鼠标放到这个Index() 上面右击添加视图,这个时候在Views文件夹里面会给创建一个以User视图,里面有一个方法Index.aspx一个用来展示给用户看的界面。
3.就在里面写一个form表单吧
- <form action="/User/Register" method="post">
- 用户名:<input type="text" name="textName" /><br />
- 用户密码:<input type="text" name="textPwd" /><br />
- 用户邮箱:<input type="text" name="textEmail" /><br />
- <input type="submit" name="subReg" value="注册" />
- </form>
4.现在有疑问吧,为什么 action="/User/Register"。 而不是向以前写表单时要转向的页面了action="/User/Register.aspx"【注意啦:在MVC里面没有文件夹只有方法,这个Register就是我们在这个生成的视图里面的一个方法】当然这个方法是我们自己定义的,
- public ActioinResult Register()
- {
- ........ 为什么类型是这个ActionResult呢?因为这个是要展示给用户的视图,Views继承自ActoinResult
- }
5.我们就在这个创建的UserController里面写一人方法。
在写方法之前呢,我们得生成一个实体对象,在Models文件夹里面
这样就行了
6.我们就在创建的UserController文件里面写一个方法
- public ActionResult Register()
- {
- UserInfo user = new UserInfo();//创建一个用户信息对象
- //接收用户输入的数据
- user.UserName = Request.Form["textName"];
- user.UserPass = Request.Form["textPwd"];
- user.Email = Request.Form["textEmail"];
- user.RegTime = DateTime.Now;
- EFFristModelEntities ef = new EFFristModelEntities();//取到数据的上下文 这个看下面的图就知道啦
- ef.UserInfo.AddObject(user);//把这个用户添加到这个上下文中
- if (ef.SaveChanges() > 0)//当保存的数据大于0的时候
- {
- return Content("亲注册成功");
- }
- return RedirectToAction("Index");//当注册不成功的时候就继续返回到这个注册页面,里面的Index视图
- }
把这个EFFristModelEntities给Copy就行啦;对了这个models里面的名字和数据库里面的名字不一样
这个上下文就不一样了。
在MVC里面不要向ASP.NET里面执行的时候,把什么设置成启始页,没有在浏览器中查看了。要点击菜单栏里面的执行了
设置了MVC里面的执行页面为启始页,不好意思亲。后果自付哈