ASP.NET MVC4 乱七八糟罗列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/taomanman/article/details/52583384


一、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运行生命周期之外。

 

 

展开阅读全文

没有更多推荐了,返回首页