强类型(第六章)<原创内容>


一、强类型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())
            {
                //公开枚举数
                IEnumerable
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()){ 
用户昵称: @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.运行