一、强类型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.运行

 

 

 

posted on 2022-05-04 20:06  黎三岁  阅读(85)  评论(0编辑  收藏  举报