一、ASP.NET MVC概述

1、什么是ASP.NET MVC?

ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架。

是微软继ASP.NET WebForm后的又一种开发方式,而非替代方式。

2、官方网站和源码网站?

官方网站:http://www.asp.net/mvc

源码网站:http://aspnet.codeplex.com/wikipage?title=MVC

3、ASP.NET MVC的特点?

1)、分离任务

2)、可扩展

3)、强大的URL重写(路由)机制

4)、兼容ASP.NET现有的技术

5)、开源

4、ASP.NET MVC的优点?

1)、通过把项目分为model、view和controller,使得复杂项目更加容易维护。

2)、没有使用viewstate和服务器表单控件,可以更方便的控制应用程序的行为。

3)、应用程序通过controller来控制程序请求,可以提供丰富的url重写。

4)、支持测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。

5)、在团队模式下表现更加出众。

5、为什么我们需要ASP.NET MVC?

1)、关注点分离

2)、高扩展性

3)、更好的可测试性

4)、更好的URL重写

5)、更好的性能

6)、更加灵活的HTML代码控制

...

6、Razor视图引擎?

Razor视图引擎是对以代码为焦点的方法实现,其特点如下:

1)、简洁、富于表现、流畅,尽量减少编写一个视图模板所需要敲入的字符数,实现快速流畅的编程工作。不必为了明确标记出服务模块的开始和结束而中断编程,Razor解析器能从你的代码中自动推断出来。

2)、易于学习,熟悉现有的编程语言和HTML技能就能快速学会。

3)、可以在任何文本编辑器中工作。

4)、VS IDE对其增加了智能提示。

5)、支持单元测试。

7、ASP.NET MVC请求处理过程?

8、ASP.NET MVC3与MVC4 知识点?

9、ASP.NET MVC与Web Form区别?

二、ASP.NET MVC编程要点

1、@Html.DisplayNameFor(mode=>model.Name),默认会直接输出属性名称,如果属性名称想要显示中文,可在类属性定义一个System.ComponentModel下DisplayName属性,如:

[DisplayName(“名称”)]

public string Name {get;set;}

使用Razor语法输出属性,默认所有数据都会使用HTML编码(HtmlEncode)输出,这是出于程序安全考虑,可避免网页遭受跨网站脚本攻击(Cross-Site ScriptingAttach)。

2、@model IEnumerable<命名空间.类名>

3、@{ ViewBag.Title=”页面标题”;}

4、@Html.ActionLink(“Create New”,”Create”)

5、@Html.ActionLink(“Edit”,”Edit”,new{id=item.Id})

用来输出超链接,第一个参数是链接显示文字,第二个参数是链接的目的Action名称,第三个参数代表路由参数id。这样MVC在输出超链接时,会加上要传给下一页的路由参数,MVC知道传入{controller}与{action}路由参数外,还给予{id}路由值。

Controller里有两个同名的方法,一个给HTTP GET方法用的,另一个是给HTTP POST方法用的。有HttpPost属性的会告知MVC框架此动作只会接收HTTP POST过来的信息,这个属性称为动作过滤器(Action Filter)或者动作选择器(Action Selector)。

// GET: /Home/Create       

public ActionResultCreate()

{

   return View();

}

 

// POST: /Home/Create

 [HttpPost]

public ActionResultCreate(Collectorcollector)

{

   if (ModelState.IsValid)

   {

          db.Collectors.Add(collector);

          db.SaveChanges();

          returnRedirectToAction("Index");

    }

returnView(collector);

}

6、Html.BeginForm()方法,该辅助方法将会输出<form>标签,而且必须以using包起来,如此便可在using程序代码最后退出后,让MVC补上</form>标签。

@using (Html.BeginForm()) {}

@Html.ValidationSummary(true)用来显示当表单域发生验证失败时,显示的错误消息。

@Html.LabelFor(model=>model.Name)用来显示特定字段的显示名称,会输出包含<label>标签的域名,它与@Html.DisplayNameFor(model=>model.Name)的区别如下图所示:

@Html.EditorFor用于输出表单域

@Html.ValidationMessageFor用于显示字段验证的错误消息。

在Model类中,需要必填属性上加一个System.ComponentModel.DataAnnotations命名空间下的Required属性,如下所示:

[Required]

public string Name {get;set;}

这是MVC引入了一种Unobtrusive的JavaScript开发风格。

跳转Action,当前Action名为Create,语法如下:

return RedirectToAction(“Index”);

ModelState.IsValid用来判断在模型(Model)的验证状态是否有效,如果验证都没有问题,就可以利用Entity Framework标准的方法将数据写入数据库。

@Html.HiddenFor(model=>model.ID),该辅助方法主要用来生成HTML窗体的隐藏域。

路由Routing---网址路由,主要有2个目的:

1)、比对通过浏览器传过来的HTTP请求。

2)、响应适当的网址给客户端浏览器。

客户端请求->URI Routing->Route->RouteHandler->HttpHandler

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

所有*.axd结尾的网址通常都代表着其中一个HttpHandler,如在ASP.NET WebForm中常用的WebResource.axd就是其中一个常见的HttpHandler。为了不让MVC把这些*.axd的HttpHandler视为MVC运行起来,所以必须添加这条IgnoreRoute规则,将其排除在MVC运行生命周期之外。

ASP.NET MVC4 乱七八糟罗列相关推荐

  1. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理②...

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理② 上一讲我们做了日志与异常的结果显示列表,这一节我们讲要把他应用系统中来. ...

  2. ASP.NET MVC4中调用WEB API的四个方法

    当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各种客户端去使用服务已经是十分普遍的做法.就.NET而言,目前提供了Remoting,WebService和WCF服务,这都能开发出功能十分强 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(31)-MVC使用RDL报表

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(31)-MVC使用RDL报表 这次我们来演示MVC3怎么显示RDL报表,坑爹的微软把MVC升级到5都木有良 ...

  4. .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...

    ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...

  5. 【翻译转载】【官方教程】Asp.Net MVC4入门指南(2):添加一个控制器

    2. 添加一个控制器 · 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-c ...

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]...

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器 ...

  7. Asp.Net MVC4入门指南(3):添加一个视图

    在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML的过程. 您将创建一个视图模板文件,其中使用了ASP.NET MVC ...

  8. ASP.NET MVC4中@model使用多个类型实例的方法

    有时需要在ASP.NET MVC4的视图的@model中使用多个类型的实例,.NET Framework 4.0版本引入的System.Tuple类可以轻松满足这个需求. 假设Person和Produ ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(39)-在线人数统计探讨

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(39)-在线人数统计探讨 系列目录 基于web的网站在线统计一直处于不是很精准的状态!基本上没有一种方法可 ...

  10. 安装asp.net mvc4后mvc3项目编译报错

    安装asp.net mvc4之后,之前的mvc3项目编译时报这个错"The type System.Web.Mvc.ModelClientValidationRule exists in b ...

最新文章

  1. 该如何对「半监督学习算法」实际性应用进行评估?Google给出了新答案
  2. 【采用】互联网金融风控模型的设计
  3. 信息检索(IR)的评价指标介绍-准确率、召回率、F1、mAP、ROC、AUC
  4. Appboy 基于 MongoDB 的数据密集型实践
  5. leetcode-3-无重复字符的最长子串
  6. 自动驾驶 8-0: 状态估计的重要 The Importance of State Estimation
  7. VS2013产品密钥
  8. python 豆瓣评论分析方法_基于Python的豆瓣影评分析——数据预处理
  9. 各学科领域入门书籍推荐
  10. lte tm模式_请教大家个问题,LTE传输模式TM1-TM8中哪种属于MIM.. - 通信技术你问我答 - 纯技术讨论者的天地 - Powered by C114...
  11. [轉貼]奋斗5年从月薪3500到700万!
  12. Win XP iis组件补丁(ghost xp)iis5.1
  13. nginxWebUI :nginx可视化配置工具---实践
  14. 阿里云服务搭建微信小程序开发环境
  15. 华为笔记本键盘说明图_没有键盘的笔记本:华为 MateBook上手图赏
  16. ubuntu下u盘变成只读模式
  17. linux下搭建游戏服务器运行环境
  18. oracle utl inaddr,oracle11gr2中ACL对UTL_INADDR的授权报错,急急急
  19. 32.768K的晶振用途
  20. python词频统计小项目

热门文章

  1. 4.3.8 使用模板
  2. CentOS6.4 X86_64 kvm+PXE备忘
  3. hdu1059Dividing
  4. GridView合并表头多重表头无错完美版(以合并3列3行举例)
  5. [洛谷P3181][HAOI2016]找相同字符
  6. TIME_WAIT状态过多的排查
  7. 设计模式(十)—— 装饰者模式
  8. leetcode笔记--7 Find the Difference
  9. (转载)Android开发者必知的开发资源
  10. pku 2976 Dropping tests 01分数规划