首页 / 软件开发 / .NET编程技术 / 基于.net mvc的校友录 六、codefirst的使用以及班级模块的关键部分实现
基于.net mvc的校友录 六、codefirst的使用以及班级模块的关键部分实现2016-01-04 ensleep
通过EF将新用户存入数据库
这里,探讨一下如何使用EF的code first将数据存入数据库,以及如何对用户的密码进行md5加密与验证。下面是用户登陆的前台代码。@using (Html.BeginForm("ToLogin", "Log")){ @Html.AntiForgeryToken() @Html.ValidationSummary(true)<div><div> <section id="loginForm"> <span style="font-size:14px;color:red"> @ViewBag.error</span> @Html.TextBoxFor(m => m.UserName, new { @class = "logoText" }) </div>详细代码见附录 </div>}此代码是前台登陆页面中的form部分,Html.BeginForm是定义一个Form,可以直接用<form>标签代替。@ViewBag.error是后台传过来的数据,目标是在用户登陆错误的时候,再次显示此页面时,ViewBag.error将带有用户名与密码组合不错误等类似提示信息,呈现给用户。@html.textboxfor其实就是一个生成<input>标签的方法,这个之前有讲过,此处不再多说。看一下后面的new{},这是一个匿名类,其实就是一个临时对象,因为要控制input的样式,不然自动生成的input会破坏登陆页面风格,这里给它传去了一个对象,当它发现对象有一个属性与它的属性名一样的时候,它会把那个属性的值给自己的属性赋上,然后就是UserName的input标签有了logoText这个类,在css中可以通过.logoText来控制这个input。@Html.ActionLink是用来生成超链接的,一般没必要用,直接用a标签就可以了,这地方测试性的使用了一下。当用户提交了这个表单之后,数据会封装在request中,以post方式传送到后台。后台的接受方法代码如下:public ActionResult ToLogin(LoginModel lm) { using (AlumniBookModel db = new AlumniBookModel()) { lm.Password = Sleep.GetMD5(lm.Password); var query = from m in db.User where m.UserName == lm.UserName && m.Password== lm.Password select m; if (query.ToList<User>().Count() > 0) { 详细代码见附录 } } ViewBag.error="您的用户名与密码组合有误,请重试"; return View("Login"); }