ASP.NET MVC4 乱七八糟罗列

简介: 一、ASP.NET MVC概述1、什么是ASP.NET MVC?ASP.NET MVC是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架。


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

 

 

相关文章
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
38 0
|
30天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
28 0
|
30天前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
95 5
|
3月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
25 0
|
3月前
|
前端开发
.net core mvc获取IP地址和IP所在地(其实是百度的)
.net core mvc获取IP地址和IP所在地(其实是百度的)
123 0
|
5月前
|
开发框架 自然语言处理 前端开发
基于ASP.NET MVC开发的、开源的个人博客系统
基于ASP.NET MVC开发的、开源的个人博客系统
51 0
|
8月前
|
SQL 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(完:内附源码)
经过一段时间的准备,【ASP.NET Core MVC开发实战之商城系统】已经完成,目前代码已开发完成,先将全部内容整理分享,如有不足之处,还请指正。
106 0
|
8月前
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(六)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情,购物车等功能的开发,今天继续讲解订单管理功能开发,仅供学习分享使用,如有不足之处,还请指正。
214 0
|
8月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
114 0

相关实验场景

更多