一、强类型HTML辅助方法(验证登录)
1.在Model文件夹处新添加ADO.NET实体数据模型
2.在模型userInfo.cs处
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码已从模板生成。
//
// 手动更改此文件可能导致应用程序出现意外的行为。
// 如果重新生成代码,将覆盖对此文件的手动更改。
// </auto-generated>
//------------------------------------------------------------------------------
namespace Demo03.Models
{
using System;
using System.Collections.Generic;
//引入验证空间
using System.ComponentModel.DataAnnotations;
public partial class UserInfo
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public UserInfo()
{
this.Article = new HashSet<Article>();
this.Collect = new HashSet<Collect>();
this.Comment = new HashSet<Comment>();
this.Tags = new HashSet<Tags>();
}
public int UserID { get; set; }
public string UserName { get; set; }
public string UserSex { get; set; }
[Required(ErrorMessage = "*用户名不能为空")]
public string UserNikeName { get; set; }
[Required(ErrorMessage = "*密码不能为空")]
[DataType(DataType.Password)]//强制类型转换
public string UserPassword { get; set; }
public int is_active { get; set; }
public Nullable<System.DateTime> regTime { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Article> Article { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Collect> Collect { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Comment> Comment { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Tags> Tags { get; set; }
}
}
3.在控制器内
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; //引用模型 using Demo03.Models; namespace Demo03.Controllers { public class LoginController : Controller { // GET: Login public ActionResult Index() { using (FineWordsDBEntities db = new FineWordsDBEntities()) { //公开枚举数 IEnumerable<Article> plist = db.Article.ToList(); return View(plist); } } //GET方式 public ActionResult Login() { return View(); } //POST方式 [HttpPost] public ActionResult Login(UserInfo user) { using (FineWordsDBEntities db = new FineWordsDBEntities()) { //判断验证是否通过 if (ModelState.IsValid) { var u = db.UserInfo.FirstOrDefault(x => x.UserNikeName == user.UserNikeName && x.UserPassword == user.UserPassword); if(u == null) { ModelState.AddModelError("","您输入的用户名或者密码错误!"); } else { return RedirectToAction("Index");//登录成功则跳转至首页 } } } return View(); } } }
4.在Login登录页处
@model Demo03.Models.UserInfo @{ Layout = null; ViewBag.Title = "登录"; } @using (Html.BeginForm()){ <table> <tr> <td>用户昵称:</td> <td> @Html.TextBoxFor(u => u.UserNikeName, "", new { style = " width:120px" }) </td> </tr> <tr> <td>用户密码:</td> <td> @Html.PasswordFor(u => u.UserPassword, new { style = " width:120px" }) </td> </tr> <tr> <td><input type="submit" value="登录" /></td> </tr> </table> <div> <p>@Html.ValidationMessageFor(u => u.UserNikeName)<br/> @Html.ValidationMessageFor(u => u.UserPassword)<br/> @Html.ValidationSummary(true) </p> </div> }
5.在Index首页
@{ Layout = null; ViewBag.Title = "Index"; } <h2>首页</h2> <p>登录成功</p>
6.运行