71muke?v=1
在线看书
立即购买

第一章 ASP.NET MVC介绍

收起
2023-04-08更新,每天更一篇

第二章 视图和控制器的数据交互

收起
2023-04-08更新,每天更一篇

第三章 模型绑定的使用

收起
2023-04-08更新,每天更一篇

第四章 ASP.NET MVC中的表单辅助方法

收起
2023-04-08更新,每天更一篇

第五章 ASP.NET MVC的表单验证

收起
2023-04-08更新,每天更一篇

第六章 ASP.NET中的强类型

收起
2023-04-08更新,每天更一篇

第七章 ASP.NET MVC中使用Ajax

收起
2023-04-08更新,每天更一篇

第八章 在ASP.NET MVC中WebAPI的使用

收起
2023-04-08更新,每天更一篇

第九章 控制器和路由的使用

收起
2023-04-08更新,每天更一篇

第十章 用户管理的实战开发

收起
2023-04-08更新,每天更一篇

控制器和视图数据交互的实战:实现用户登录

我们学习了控制器和视图后,接下来我们一起学习结合模型,实现MVC的联动操作。


创建数据库,库名ShoppingTest:

步骤一:打开SQL Server,对数据库右键,选择新建数据库,按着下图操作:

image.png

步骤二:创建用户表user,流程如下:

注意的是:创建的表id是主键,需要右键设置。以及设置id为标识列(可以实现自动累加id值)

image.png

对id右键“属性”设置id为标识列。

image.png

最后按ctrl+s保存表,表名命名为user。

步骤三:刷新表,才能看到表在这里。

image.png

步骤四:对user表右键,编辑前20条数据。

打开得到下图的表结构,再添加数据到表中。

image.png

相关的数据库文件将会贴在最后,可以根据自己的情况选择下载。


在项目中的Models使用数据库对象

步骤一:对Models文件夹右键新建项,然后按下面的步骤设置EF对象,对象里面的命名需要为数据库的库名。

image.png

步骤二:选择第一个再下一步。

image.png

步骤三:选择新建数据库

image.png

步骤四:配置数据库信息

image.png

结果如下:

image.png

步骤五:选择表结构:

image.png

使用表结构:

image.png

得到下面结果代表成功:

image.png


控制器的登录方法创建:

LoginController.cs新增方法代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FirstProject.Models; //先使用模型命名空间

namespace FirstProject.Controllers
{
    public class LoginController : Controller
    {
        //数据库访问对象
        private ShoppingTestEntities db = new ShoppingTestEntities();

        //新增登录页
        public ActionResult indexback()
        {
            return View();
        }
        //通过方法参数接收视图数据时,不会区分是POST请求还是GET请求,都可以获取参数
        [HttpPost]
        public ActionResult indexback(string username,string pwd)
        {
            //1、数据校验
            if (string.IsNullOrEmpty(username))
            {
                ViewBag.error = "用户名不能为空!";
            }else if (string.IsNullOrEmpty(pwd))
            {
                ViewBag.error = "密码不能为空!";
            }
            else
            {
                //2、数据都不为空时,直接操作访问数据库查询用户信息
                user u = db.user.FirstOrDefault(p=>p.username == username && p.pwd == pwd);
                if(u == null)
                {
                    ViewBag.error = "用户名或密码错误!";
                }
                else
                {
                    //登录成功 =》 跳转到Home/UserList 展示用户列表
                    return Redirect("/Home/UserList");
                }
            }
            return View();
        }
    }
}

需要注意的是,上面代码需要自己补充到LoginController.cs才能运行。


对应的视图代码indexback.cshtml代码如下:

@{
    ViewBag.Title = "用户登录";
}

<h2>用户登录</h2>
<div class="row">
    <div class="col-lg-12">
        <form action="" method="post">
            <p>
                用户名: <input type="text" name="username" value="" />
            </p>
            <p>
                密码: <input type="password" name="pwd" value="" />
            </p>
            <p>
                <input type="submit" name="name" value="登录" />
            </p>
            <p style="color:red;">
                @ViewBag.error
            </p>
        </form>
    </div>
</div>


运行效果:

image.png

登录失败:

image.png

登录成功:

image.png

这节课就到此结束了,自己尝试的按上面的要求练习如何创建数据库,添加Models对象,最后实现控制器的创建、视图页面的添加、实现登录操作吧!


附件:数据库SQL脚本的代码,直接复制过去到SQL Server执行即可得到结果。

USE [master]
GO
/****** Object:  Database [ShoppingTest]    Script Date: 2023/4/10 16:35:16 ******/
CREATE DATABASE [ShoppingTest] ON  PRIMARY 
( NAME = N'ShoppingTest', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\ShoppingTest.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'ShoppingTest_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\ShoppingTest_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [ShoppingTest].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [ShoppingTest] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [ShoppingTest] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [ShoppingTest] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [ShoppingTest] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [ShoppingTest] SET ARITHABORT OFF 
GO
ALTER DATABASE [ShoppingTest] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [ShoppingTest] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [ShoppingTest] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [ShoppingTest] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [ShoppingTest] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [ShoppingTest] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [ShoppingTest] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [ShoppingTest] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [ShoppingTest] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [ShoppingTest] SET  DISABLE_BROKER 
GO
ALTER DATABASE [ShoppingTest] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [ShoppingTest] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [ShoppingTest] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [ShoppingTest] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [ShoppingTest] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [ShoppingTest] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [ShoppingTest] SET HONOR_BROKER_PRIORITY OFF 
GO
ALTER DATABASE [ShoppingTest] SET RECOVERY FULL 
GO
ALTER DATABASE [ShoppingTest] SET  MULTI_USER 
GO
ALTER DATABASE [ShoppingTest] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [ShoppingTest] SET DB_CHAINING OFF 
GO
EXEC sys.sp_db_vardecimal_storage_format N'ShoppingTest', N'ON'
GO
USE [ShoppingTest]
GO
/****** Object:  Table [dbo].[user]    Script Date: 2023/4/10 16:35:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[user](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[username] [varchar](50) NOT NULL,
	[pwd] [varchar](50) NOT NULL,
	[power] [smallint] NOT NULL,
	[nickname] [varchar](50) NOT NULL,
 CONSTRAINT [PK_user] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[user] ON 

INSERT [dbo].[user] ([id], [username], [pwd], [power], [nickname]) VALUES (1, N'123', N'123', 1, N'王虎')
INSERT [dbo].[user] ([id], [username], [pwd], [power], [nickname]) VALUES (2, N'1232', N'12345', 0, N'陈明')
INSERT [dbo].[user] ([id], [username], [pwd], [power], [nickname]) VALUES (3, N'1231', N'1234', 1, N'陈潇')
INSERT [dbo].[user] ([id], [username], [pwd], [power], [nickname]) VALUES (4, N'1233', N'12344', 0, N'陈敏')
INSERT [dbo].[user] ([id], [username], [pwd], [power], [nickname]) VALUES (5, N'1231', N'12355', 1, N'王明明')
SET IDENTITY_INSERT [dbo].[user] OFF
GO
USE [master]
GO
ALTER DATABASE [ShoppingTest] SET  READ_WRITE 
GO


留言

发布留言

需要购买本课才能留言哦~

{{ item.createtime | dateStr }}