强类型(第六章)<原创内容>
一、强类型HTML辅助方法(验证登录)
1.在Model文件夹处新添加ADO.NET实体数据模型
2.在模型userInfo.cs处
//------------------------------------------------------------------------------
//
// 此代码已从模板生成。
//
// 手动更改此文件可能导致应用程序出现意外的行为。
// 如果重新生成代码,将覆盖对此文件的手动更改。
//
//------------------------------------------------------------------------------
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();
this.Collect = new HashSet();
this.Comment = new HashSet();
this.Tags = new HashSet();
}
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 regTime { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection Article { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection Collect { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection Comment { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection 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()) { //公开枚举数 IEnumerableplist = 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()){
| 用户昵称: | @Html.TextBoxFor(u => u.UserNikeName, "", new { style = " width:120px" }) |
| 用户密码: | @Html.PasswordFor(u => u.UserPassword, new { style = " width:120px" }) |
| "submit" value="登录" /> |
@Html.ValidationMessageFor(u => u.UserNikeName)
@Html.ValidationMessageFor(u => u.UserPassword)
@Html.ValidationSummary(true)
5.在Index首页
@{ Layout = null; ViewBag.Title = "Index"; }首页
登录成功
6.运行