ASPNET MVC概念
ASPNET MVC 是微软官方提供的MVC模式说白了ASPNET MVC知识开发ASPNET Web
应用程序的一个框架而已而且其只是一个表示层框架同时也是微软的第一个开源项目
使用ASPNET开发web应用程序方式
WebForm方式
AspNet MVC 方式
注意WebForm方式和AspNet MVC方式是使用开发web应用程序的两种并行方式mvc(以下简称mvc)的目的并不是取代WebForm而是web开发的另外一种选择而已
MVC模式简介
MVC模式是一种表现模式它将web应用程序分成三个主要组件即视图(View)控制器(Controller)和模型(Model)
MModel主要是存储或者是处理数据的组件
Model其实是实现业务逻辑层对实体类相应数据库操作如CRUD(Create/Retrieve/Update/Delete)它包括数据验证规则数据访问和业务逻辑等应用程序信息
VView是用户接口层组件主要是将Model中的数据展示给用户
CController处理用户交互从Model中获取数据并将数据传给指定的View
要点
M和V的实现代码分离从而使同一个程序可以使用不同的表现形式C存在的目的则是确保M和V的同步一旦M改变V应该同步更新
控制器隔离了业务逻辑和View耦合使得业务逻辑和数据规则等很容易改变而不影响到前台页面
View和Controller都可以直接请求Model但是Model不依赖View和Controller
Controller可以直接请求View来显示具体页面View不依赖Controller
第一个AspNet MVC程序
案例下面我们通过向EFFirst数据库的Customer表中添加数据数据并且将所有用户信息展示到对应页面的方式来书写第一个AspNet MVC应用程序
Customer表结构
CustId(客户编号)主键自动增长
CustName(客户姓名)
CustAddress(客户地址)
首先创建MVC的项目
对解决方案点右键新建项目如下图
将项目名称命名为MyMVC然后点击确定如下图
选择否点击确定
接下来对项目的目录结构进行剖析
App_Data;在该文件夹下的文件是不同通过URL访问的起到保护文件的作用
Content:项目用到的素材和样式等的文件夹例如我们可以将Image文件夹和Css文件夹放到Content文件夹中
Controllers:控制器存储文件夹
Models模型存放文件夹
Scriptsjs(javascript)文件存储文件夹
Views视图存放文件夹
创建控制器UserInfoController
创建视图Register
Register页面对Controller发起请求请求可以分两种get和post所以我们写了两个action 为了方便后续操作我们可以对action写一个重载无参的Register()用来处理get请求 带参数的Register(FormCollection collection)用来处理post请求如下图
然后对无参的Register点右键选择添加视图菜单项
点击添加按钮则在Views文件夹中会自动创建出一个名称为UserInfo(和action所在的控制器名称相同)的文件夹并且在该文件夹下创建一个名称为Register的aspx文件注意这里的aspx文件没有后缀名为cs的文件
在Register中书写html代码如下所示
既然是注册页面必须将用户输入的信息提交到服务器此时我们可以使用form表单为其action属性设置属性值为/UserInfo/RegisterUserInfo代表的是UserInfoControllerRegister代表UserInfoController下的action也即是说我们将信息提交到了Register这个action
用户填写完信息后流程跳转到了UserInfoController此时我们可以在接收Post请求的action中书写如下代码
说明return RedirectToAction(Index)作用是跳转到名称为Index的action继续执行
创建actionIndex和视图Index
用同样的方式对Index点右键创建ViewIndex
<style type=text/css>
thtd {
textalign: center;
}
</style>
<h>微冷的雨用户详细信息页面</h>
<h>由于顾客的数据肯定会出现多条因此使用table显示</h>
<table width=%>
<thead>
<tr>
<td>编号</td>
<td>用户姓名</td>
<td>用户地址</td>
</tr>
</thead>
<tbody>
<% foreach (var item in (IEnumerable<Customer>)ViewData[Customer])
{%>
<tr>
<td><%:itemCustId %></td>
<td><%:itemCustName %></td>
<td><%:itemCustAddress %></td>
</tr>
<%}
%>
</tbody>
</table>
View Code
最终我们可以实现如下效果
至此今天的文章结束了