ASP.NET MVC概述及第一个MVC程序
一、ASP.NET 概述
1. .NET Framework 与 ASP.NET
.NET Framework包含两个重要组件:.NET Framework类库和公共语言进行时。编写ASP.NET
页面需要用到.NET Framework的框架类库和公共语言进行时
2. ASP.NET MVC简介
ASP.NET MVC是ASP.NET技术的一个子集,它是ASP.NET 技术和MVC模式的完美结合,类似于Java
平台的Struts框架
3.ASP.NET 的特色和优势
1.对开发者友好,开发效率高
2.方便设置断点,易于调试
3.编译后执行,运行效率高
二、创建第一个ASP.NET MVC应用
1.项目结构说明如下:
App_Data文件夹:用来存放系统包含的数据库文件
App_Start文件夹:包含ASP.NET MVC系统启动的相关类文件
Controllers文件夹:放置整个项目的控制器代码文件
Models文件夹:放置整个项目的模型代码文件
Views文件夹:放置整个项目的视图代码文件
Views下的Web.config文件:作用于视图的配置文件
Global.asax文件:全局应用程序文件,一般和APPStart文件夹中的类配合使用
packages.config文件:用于管理项目用到的程序集版本
根目录下的Web.config:作用于整个项目的配置文件
2.创建控制器
右击解决方案中的“Controllers”文件夹,在弹出的快捷菜单中选择“添加”--“控制器”选项
打开“添加控制器”对话框
eg:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
Index()方法:控制器中的动作方法,用于响应客户端请求,并调用响应的视图向游览器
输出信息
3.创建和编写视图
在“Views”文件夹中创建“Home”文件夹,在“Home”下可创建视图
4.ASP.NET MVC程序的工作原理
1.Global.asax文件 主要是在系统启动时做一些全局性的初始化工作,调用App_Start文件夹
eg:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
2.RouteConfig.cs
eg:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
注意:"{controller}/{action}/{id}",其实就是定义的URL规则
使用http://localhost:1543/Home/Index/0访问系统,系统会自动对应
5.视图命名和寻址的规则(在控制器中,使用View()方法调用视图,返回和动作方法同名的视图)
ASP.NET MVC框架的一大特点就是“约定胜于配置”,即一些规则是约定好的,不需要通过配置文件去配置
所有控制器都以Controller结尾
应用程序中所有视图都有一个统一的Views主目录
在Views主目录下房子和控制器同名的子目录
三、Web服务器(IIS Express和开发服务器)
如果正式发布的ASP.NET程序,则需要运行在另外一种Web服务器IIS上
1.如何调试ASP.NET MVC程序?
需要在根目录下的Web.config中配置:<compilation debug="true" targetFramework="4.5" />
其中,debug="true"即表示支持调试,在正式发布后,debug还需要设置为false
四、ASPX视图
1.ASPX视图的声明和编码
(1)、@Page指令的常用属性
Language:指定页面代码和后置代码使用的语言
Inherits:继承的页面类,ASPX视图一般继承的是System.Web.Mvc.ViewPage
ContentType:指定MIME类型和页面回应时所采用的字符编码方式
ValidateRequest:指定是否验证请求
MasterPageFile:指定使用的母版视图文件
(2)、@Import指令(引入命名空间)
<% Import Namespace="MvcDemo.Helpers"%>
(3)、服务器端内嵌语法
1)、小脚本和表达式
eg:
<%
//计算最大值
int[] values={,,,};
int max=;
foreach(int value in values){
if(value>max)
max=value;
}
%>
2)、服务器端脚本块(可以定义一些方法和全局变量)
eg:
<script runat="server">
string message="显示最大值:";
int GetMax(int[] values)
{
int max=;
foreach(int value in values)
{
if(value>max)
max=value;
}
return max;
}
</script>
<%=message+getMax(new int[]{,,,})%>
ASPX视图表达式<%=%>还可以写成<%:%>
2.母版视图
1.创建母版视图
母版视图,一般放在Views下的一个固定文件夹中,名为"Shared",在该文件夹中,可以通过
右键快捷菜单中的“添加” “新建项” 选择打开新建项窗口 选择 MVC4视图母版页
2.母版视图和普通视图的特殊之处
(1).页面开头是@Master指令,该指令也有相应的属性,包括Language和Inherits属性,它默认
继承的基类为System.Web.Mvc.ViewMasterPage类
(2).页面中包含两处<asp:ContentPlaceHolder/>标记,该标记是服务器端标记,它表示页面内容的
容器及放置内容视图的位置
3.使用模板视图
要创建一个使用模板视图的内容视图,只需要勾选"使用布局或母版页"复选框,并选择提前创建好的
母版视图
(1).@Page指令声明中多了MasterPageFile属性的设置 是母版视图文件的路径
(2).</asp:Content>标记,和母版视图中的</asp:ContentPlaceHolder>标记对应
ASP.NET MVC概述及第一个MVC程序的更多相关文章
- [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序
[.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序 一.练习项目: http://www.asp.net/mvc/tutorials/mvc-4/gettin ...
- Cesium入门2 - Cesium环境搭建及第一个示例程序
Cesium入门2 - Cesium环境搭建及第一个示例程序 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 验 ...
- Conda安装及第一个py程序
Conda安装及第一个py程序 安装Conda 下载安装 在Anaconda官网下载Anaconda 打开Conda安装程序 设置好安装目录(这个一定要记好,后边要用),比如我的目录就是 D:\Pro ...
- Node.js入门以及第一个helloworld程序
1.概念:简单的说 Node.js 就是运行在服务端的 JavaScript.学之前需要明白Node.js是无法挑战jsp.php或者asp这种老牌网站的地位的,是永远不会出现在证券.金融这种领域的. ...
- git环境搭建以及第一个PHP程序
使用mac下的sublime等编辑器帮助代码编写,然后到linux下运行网页代码.可以通过/vagrant共享目录完成,但是默认apache默认目录为/var/www/html,不想改变该目录,同时为 ...
- day1 安装jdk8环境及第一个java程序
安装jdk8 第一步:下载jdk安装包,我们这里下载orical官网的jdk8版本.
- Python初学者第一天 Python安装及第一个Python程序
Python基础: 1day: 1.Python基础: A.编程语言介绍: a. 计算机只能理解0和1.编程即写一段按照一定规则写代码,让计算机帮你干活: b.机器语言:最底层的语言, ...
- Python 开篇及第一个Python程序
本节内容 python 简单介绍 python 2.x 或者python 3.x python 安装 第一个python程序 一.python简单介绍 python的创始人为吉多.范罗苏姆(Guido ...
- Mybatis入门及第一个Mybatis程序
Mybatis笔记整理 所需要的基础知识 JDBC Mysql Java基础 Maven Junit 框架:是有配置文件的.最好的方式:看官网文档 1.简介 1.1.什么是MyBatis 简介 什么是 ...
随机推荐
- LINUX LVM和快照卷配置和管理
具体参考这个文章把: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_042_lvm.html 1.LVM是什么 逻辑卷管理LVM是一个多 ...
- Java设计模式学习记录-状态模式
前言 状态模式是一种行为模式,用于解决系统中复杂的对象状态转换以及各个状态下的封装等问题.状态模式是将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象的状态可以灵活多变.这样在客户端使 ...
- Linux文件权限与属性详解 之 ACL
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
- 业务开发(二)—— Spring框架
0x01.使用枚举类,在MyBatis中 到了mapper.xml文件那里,如Status要与1进行对比,而不是1所对应的枚举字符串. 0x02.分页 Dao获取到的记录数,在Controller层放 ...
- js_jquery_创建cookie有效期问题_时区问题
用jquery设置Cookie过期的两种方式: $.cookie('名', '值', { expires: 过期时间(DateTime), path: "/", domain: w ...
- MVC 视图助手书写规范及注意点
@Html.TextBoxFor() 讲解(其他类似的 @Html.LabelFor 等)同理 @Html.TextBoxFor(model => model.SearchParams.Name ...
- 水晶报表Crystal 无效索引
这几天项目用到水晶报表做报表打印,没有前辈指导,都自己摸着石头过河,真是痛并快乐着.其实水晶报表还是挺好用的,对初学者也并不难(我就是初学者).昨天遇到一个问题:无效索引 ……开始以为是报表设置的问题 ...
- EChart中使用地图方式总结(转载)
EChart中使用地图方式总结 2018年02月06日 22:18:57 来源:https://blog.csdn.net/shaxiaozilove/article/details/79274772 ...
- [PHP] 算法-字符串的左循环的PHP实现
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=”abcXYZde ...
- 【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别
注意到这个问题,是在CentOS7上安装JDK的时候,查找相关的资料,发现安装JDK之前都需要检查或卸载系统上原生的Open JDK,这才引起了注意. 到了这里,引用查到的一篇说明. 转自:http: ...