MVC5 + EF6 入门完整教程二

article/2025/10/19 13:38:34


从前端的UI开始


MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分。

ASP.NET MVC抛弃了WebForm的一些特有的习惯,例如服务器端控件,ViewState这些东西,让Web回归原始的状态,Web是什么样子就是什么样子。而谈到一个Web Application的UI,涉及到的无非就是html、css、 js这些东西。


文章提纲


  • 概述
  • 重要概念介绍
  • 建立 注册/登录UI 步骤(静态页面àViewà功能)

概述


一般来说,有两块功能是每个系统都要使用的。

一个是 用户注册/登录,一个是Table的CRUD

最近四篇文章的规划:

  1. 本次会先做简单的注册/登录UI
  2. 结合EF完成注册/登录的功能
  3. 以Table的CRUD为例子,展开讲解EF (code first方式)
  4. 借助bootstrap加入页面样式,补充其他功能,将前面的代码扩展成一个开发的基础框架

P.S. 顺便回答下园友的两个问题:

1.有园友表示没看到EF

原因是不想一下引入太多的概念,大概下篇文章开始涉及到EF.

2. 系列的文章数量和更新:

a. 数量:本系列文章会从一个主干开始,逐渐深入,初步规划30篇。初级10篇,中级10篇,综合项目实战10篇。

b. 更新:大概每周会更新一篇

重要概念介绍

  1. View的存放位置约定
  2. Action Method Selector

应用在Controller的Action上,以帮助选择适当的Action,

文中以 [HttpPost] 举例

  1. ViewBag

在View和Controller中传递数据的一种方式 (类似的方式还有ViewData、TempData), 掌握通过ViewBag在View和Controller中传递数据

  1. HtmlHelper

通过View的Html属性调用,文中以Html.BeginForm为例

 

建立 注册/登录 UI详细步骤

  1. 打开上次项目,新建两个Action

本系列文章知识点和演示代码都以前一篇文章为基础,有问题可以回上一篇进行查找。本次我们将会新建用户 注册/登录 的两个页面。

打开ControllersàAccountController.cs ,仿照已有的Index, 添加两个Action, 如下图。

NOTE: 添加这Action可以

a. 通过手打或粘贴复制,

b.右键,插入代码段(或ctrl k, x)àASP.NET MVC4à mvcaction4(或mvcpostaction4), 如下面一组图。

  1. 添加Action相应的View

根据上一步中添加的Action, 添加相关View: Login.cshtml, Register.cshtml

添加方法详见上篇文章,不再重复讲解。

这里再说明下View的存放位置约定。记住下面三句话:

  1. 所有的View都放在Views文件夹
  2. Views文件夹创建了一系列与Controller同名的子文件夹
  3. 各子文件夹内存放与Action同名的cshtml文件(对应的View文件)

    1. 完成登录界面UI

    1.1 我们把Login.cshtml就当做一个静态html页面,完成登录界面的UI

    大家可以把cshtml理解成原来的aspx和html的混合体:

    利用了aspx的优点,方便和后台交互;利用了html的优点,语法简洁(HtmlHelper)

    a. 到bootstrap上复制个登录界面html

    http://getbootstrap.com/css/#forms

    b. 放到Login.cshtml 的body的div中

    NOTE为了减少干扰项,我们不加任何样式, 项目全部结束后再进行页面美化。

    右键浏览器 View page source, 发现多了VS Browser Link废代码。

    我们将它禁用掉。

    打开web.config添加如下代码,再去浏览器查看源代码,可以看到纯净的html了。

    1. 将前端的数据传递到Controller中去

    完成一个登录工作:

    填写表单à Controller获取表单数据à 进一步操作(例如去数据库比对,通过后获取用户身份跳转到指定页面)

    我们这次先完成到Controller获取数据,对数据库的操作我们下一章和EF结合起来一起讲。

    OK, 现在我们对Login.cshtml进行修改。

    修改前的Login.cshtml:

    1. 首先我们先去AccountController.cs中创建一个Login同名的Action来接受表单提交的数据。

    注意新添加的Action中增加了一个[HttpPost] ,表示这个Action只会接受http post请求。ASP.NET MVC提供了Action Method Selector, HttpPost就是其中之一。(后续文章中会专门有一篇讲解这些Selector)

    HttpPost属性典型的应用场景:

    涉及到需要接受客户端窗口数据的时候,创建一个用于接收HTTP Get请求的Action, 用于显示界面, 提供给用户填写数据;

    另一个同名Action则应用[HttpPost]属性,用于接收用户发来的数据,完成对应的功能。

    1. 打开Login.cshtml, 修改form,为后端接收数据做准备。

    先在form标签内增加两个属性action, method。对于form中的method(默认是get),通常情况下, get用于简单的读取数据操作,post用于写数据操作。

    在input元素下添加name属性,设置成和id一样的值。

    NOTE: 服务器端需要通过name来取值。

     2. 打开AccountController.cs,修改[HttpPost]的Login Action用于接收数据

为了区分登录前后,我们通过ViewBag传递一个登录状态过去。

前台同样加个文字标识。

登录效果:

 

 优化:使用第一个HtmlHelper

       因为这次的内容比较简单,还没必要用到HtmlHelper

       我们对Login.cshtml中的form做一点改良。

       如下图,action的位置是固定的,这样的话部署发生变化时有可能地址会不可用(如放在IIS根目录下和虚拟目录下是不同的)

      

     使用HtmlHelper动态计算路由地址就是其中的一种方法。

     添加下面一句代码,将form中内容放到 {} 中去即可

    @using (Html.BeginForm("login","Account",FormMethod.Post)) { }

    运行,到浏览器中查看源代码,可以看到生成的源代码和原来一样。

 

同样的,完成注册界面UI(类似登录界面,步骤略)

总结

通过开发了一个最基本的登录界面,介绍了如何从Controller中获取表单数据。

因本次示例比较简单,还不需要用到HtmlHelper

下篇文章会通过model自动生成数据库,完成整个功能。

本次源码:http://files.cnblogs.com/miro/MVCDemo%401021.rar


http://chatgpt.dhexx.cn/article/8lKf6plE.shtml

相关文章

ASP.NET + MVC5 入门完整教程七 -—-- MVC基本工具(上)

这里主要介绍三类工具之一的 依赖项注入(DI)容器,其他两类 单元测试框架和模仿工具以后介绍。 1、准备示例项目 从创建一个简单的示例开始,名称为"EssentialTools" ,使用MVC空模板,如下所示: 创…

ASP.NET MVC 5 开发框架简介

1、新建项目 2、选择MVC模板 3、MVC框架简介 (1)App_Data: 该文件夹主要是包含应用程序的本地存储, 它通常以文件形式(如Microsoft SQL Server数据库文件, XML文件等)包含数据存储。 (2)App_Start: 该文件夹包含应用程序的配置逻…

asp.net mvc5 安装

原文地址 http://docs.nuget.org/docs/start-here/using-the-package-manager-console 工具-->NuGet程序包管理器-->程序包管理器控制台 然后 PM>Install-Package Microsoft.AspNet.Mvc -Version 5.0.0 Finding a Package From the Tools menu, select Library Pa…

MVC5 + EF6 入门完整教程

第0课 从0开始 ASP.NET MVC开发模式和传统的WebForm开发模式相比,增加了很多"约定"。 直接讲这些 "约定" 会让人困惑,而且东西太多容易忘记。 和微软官方教程不同,笔者尽量不用脚手架,从空白框架开始&…

ASP.NET + MVC5 入门完整教程二

从前端UI开始 MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分。而谈到一个Web Application的UI,涉及到的无非就是html、css、 js这些东西。有兴趣的同学可以看看EsayUI。 任务 建立 注…

asp.net + MVC5 入门完整教程一

第1课 从0开始 从空白框架开始,一步一步添加功能,让大家能真正能用起来,理解每一个过程。 概述 本系列文章及文章中的例子主要基于微软官方文档 使用工具 : VS2014 sqlServer 2014 开始主要讲解MVC使用,后续同样也会提供MVC A…

ASP.NET + MVC5 入门完整教程三 (上) ---第一个MVC项目

第一个MVC应用程序 1创建MVC项目 打开VS ,File--新建--项目,选择ASP Web项目,命名后确认。选择(Empty)空模板, 项目创建完成,会看到 解决方案管理器 窗口显示一些文件夹,如图&…

ASP.net MVC5 简介

ASP.net MVC5 简介 MVC是什么 MVC是一种设计模式。 也就是Model-View-Controller 模型-视图-控制器。 Model的功能 Model试数据模型,用来封装与程序相关的数据,以及对数据操作的处理方法。 有关“数据处理”的范围都可以属于Model,比如…

ASP.NET MVC5 网站开发实践 - 概述

前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代码自己都理不清了。1月26日晚上在群里跟怒放 他们讨论这个问题,结论是即使只是一个小demo也应该分层来写。正好看到别人…

MVC5路由系统机制详细讲解

转自:http://www.lanhusoft.com/Article/213.html 请求一个ASP.NET mvc的网站和以前的web form是有区别的,ASP.NET MVC框架内部给我们提供了路由机制,当IIS接受到一个请求时,会先看是否请求了一个静态资源(.html,css,…

基于用户 的协同过滤算法

计算用户相似度和用户对未知物品的可能评分 基于用户的协同过滤算法主要包括两个步骤。 (1) 找到和目标用户兴趣相似的用户集合。 (2) 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。 例如现在有A、B、C、D四个用户,分别对a、…

JAVA开源协同过滤算法,推荐算法:协同过滤算法的介绍

一、什么是推荐算法 互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网络的迅速发展而 带来的网上信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息…

协同过滤算法实验

本次呢,简单介绍一下协同过滤算法,并且给出简单的电影推荐实验作为举例说明。利用Spark MLlib中的协同过滤算法完成针对特定用户的电影推荐功能。这一部分需要实现实现输入用户id,输出为其推荐的电影。 一、协同过滤 所谓协同过滤&#xff0…

协同过滤算法及python实现

协同过滤算法及python实现 1.算法简介 协同过滤算法是一种较为著名和常用的推荐算法,它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐。也就是常见的“猜你喜欢”,和“购买了该商品的人也喜欢”等功能。…

协同过滤算法理论

1. 协同过滤算法 协同过滤(Collaborative Filtering)推荐算法是最经典、最常用的推荐算法。 所谓协同过滤,基本思想是根据用户之前的喜好以及其他兴趣相近的用户的选择来给用户推荐物品(基于对用户历史行为数据的挖掘发现用户的喜好偏向&…

协同过滤算法实战

简介 公司给了一个任务,要求根据相似度匹配给教师推荐课程。正好复(预)习一下协同过滤算法。直接探索一下协同过滤应用。 目前教师档案大数据系统中存有海量的教师数据,这些数据对于教师的未来决策,预测教师发展路径,推荐教师课…

协同过滤算法(例题理解)

协同过滤算法是一种推荐系统算法,它利用用户对物品的评价数据来预测用户对未评价物品的喜好程度。该算法基于一个简单的思想:如果两个用户在过去对某些物品的评价很相似,那么在未来他们对这些物品的评价也很可能相似。因此,协同过…

python实现协同过滤算法

协同过滤算法常用于商品推荐或者类似的场合,根据用户之间或商品之间的相似性进行精准推荐 协同过滤算法分为: 基于用户的协同过滤算法(UserCF算法)(适合社交化应用)基于商品的协同过滤算法(It…

java 协同过滤算法_推荐系统中协同过滤算法实现分析

最近研究Mahout比较多,特别是里面协同过滤算法;于是把协同过滤算法的这个实现思路与数据流程,总结了一下,以便以后对系统做优化时,有个清晰的思路,这样才能知道该如何优化且优化后数据亦能正确。 推荐中的协…

协同过滤算法理解

一、协同过滤思想介绍 顾名思义,协同过滤算法的核心思想就是“物以类聚,人以群分”,通过用户对物品的评价和意见,将物品和人聚成几类,从各自的类中挑选出用户可能感兴趣的的物品进行推荐,而代替从直接从海量…