1.   MVC设计模式

Ø  Model:是指要处理的业务代码和数据操作代码。

Ø  View:主要用于跟用户打交道,并能够展示数据。

Ø  Controller:可以看作是 Model 和 View 的桥梁。

Ø  优点:

1.   可以降低 Model(业务/数据)与 View(视图)之间的耦合关系。

2.   可以复用视图(同样的数据,可以使用不同的视图展示出来)。

2.   MVC框架

Ø  遵循:约定大于配置。

1)   控制器:类命名以 Contoller 结尾,例如:HomeController。

2)   视图:将会在 Views文件夹下生成一个与控制同名的文件夹,例如:~/View/Home。

3)   Action 方法:将会在 ~/View/Home 文件夹下生成一个与 Action 方法同名的*.cshtml 文件,例如:Index.cshtml。

3.   MVC 传值

1)   MVC 传值的方式:

1.   VeiwBag: 数据类型为 dynamic,是一个动态数据类型。其生命周期为当前Controller 下的 Action 与 View、以及其他 View。

2.   ViewData: 数据类型为 Syste.Web.Mvc.ViewDataDictionary<string, object>,是一个实现了 System.Collections.Generic.IDictionary<TKey, TValue> 接口的字典类型。其生命周期为当前Controller 下的 Action 与 View、以及其他 View。

注意:ViewBag 与 ViewData 数据可以共享?

3.   TempData: 数据类型为 System.Web.Mvc.TempDataDictionary<string, object>,是一个实现了 System.Collections.Generic.IDictionary<TKey, TValue> 接口的字典类型。其生命周期为当前Controller 下的 Action 与 View,以及当前会话中的其他 Action,可以跨 Controller 与 Action。

4.   Model: 数据类型为 System.Object, 是一个 object 类型。其生命周期为当前 Controller 下的 Action 与 View。

5.   Session: 数据类型为 System.Web.HttpSessionStateBase, 是一个实现了 System.Collections.ICollection 与 System.Collections.IEnumerable 接口的 object 集合类型。其生命周期为会话结束前(默认为 20 分钟),可以跨 Controller 与 Action。

2)   Action 与 视图

1.   视图取值时,VeiwBag、ViewData、TempData 都不区分大小写。

2.   使用 View() 方法指向其他 View 时,VeiwBag、ViewData、Session 可以取到值, 而 TempData 则取不到。

3)   Action 与 Action

1.   Action取值时, TempData 不区分大小写。

2.   使用 RedirectToAction() 方法跳转其他 Controller 或 Action 时,TempData、Session 可以取到值,而 VeiwBag、ViewData 则取不到。

4.   MVC 视图基类

Ø  视图基类 WebPage,声明如下:

public abstract class WebPage : WebPageBase

{

protected WebPage();

public override HttpContextBase Context { get; set; }

public HtmlHelper Html { get; }

[Dynamic]

public dynamic Model { get; }

public ModelStateDictionary ModelState { get; }

public static void RegisterPageExecutor(IWebPageRequestExecutor executor);

public override void ExecutePageHierarchy();

protected override void InitializePage();

}

5.   Html 属性(HtmlHelper 类)

Ø  该类位于 System.Web.WebPages.dll 程序集的 Sy" />

4)   TextAreaFor() 方法

Ø  描述:用于创建一个文本域。

示例:@Html.TextAreaFor(ba=>ba.AContent,10, 60, null)

结果:<textarea cols="60" id="AContent" name="AContent" rows="10">阿桑地方123</textarea>

5)   DropDownListFor() 方法

Ø  描述:用于创建一个下拉列表框。

示例:@Html.DropDownListFor(ba=>ba.ACate, ViewBag.ListCates as IEnumerable<SelectListItem>)

结果:<select data-val="true" data-val-number="字段 ACate 必须是一个数字。" data-val-required="ACate 字段是必需的。" id="ACate" name="ACate"><option value="2">cccccccc</option></select>

6)   ActionLink() 方法

Ø  说明:用于创建一个超链接。

示例:@Html.ActionLink("返回", "Index", "Home")

结果:<a href="/">返回</a>

ASP.NET MVC 3 笔记的更多相关文章

  1. ASP.NET MVC学习笔记-----Filter2

    ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...

  2. ASP.NET MVC学习笔记-----Filter

    ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...

  3. ASP.NET MVC学习笔记-----Filter(2)

    接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用,它需要实现IActionFilter接口: public ...

  4. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  5. ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则

    ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...

  6. 【MVC5】ASP.NET MVC 项目笔记汇总

    ASP.NET MVC 5 + EntityFramework 6 + MySql 先写下列表,之后慢慢补上~ 对MySql数据库使用EntityFramework 使用域用户登录+记住我 画面多按钮 ...

  7. 【转】ASP.NET MVC学习笔记-Controller的ActionResult

    1. 返回ViewResult public ActionResult Index()   {       ViewData["Message"] = "Welcome ...

  8. ASP.NET MVC学习笔记-----使用自定义的View Engine

    我们都知道在ASP.NET MVC中自带了Razor View Engine,Razor十分的强大,可以满足我们绝大部分的需要.但是ASP.NET MVC的高度可扩展性,使我们可以使用自定义的View ...

  9. ASP.NET MVC学习笔记-----ActionInvoker

    还是这张图: 当ControllerFactory生成Controller实例后,这时就需要使用ActionInvoker来选择调用一个合适的Action执行.ASP.NET MVC提供的基类Cont ...

  10. ASP.NET MVC 学习笔记(1)

    从头开始系统地学习ASP.NET MVC 为什么要学习ASP.NET MVC?原因很多,可以先来看一下最早的ASP.NET WebForm的一些缺点: 传说中面试经常要问到的ASP.NET WebFo ...

随机推荐

  1. 对于rqy今天讲座的一些理解和看法吧

    其实我本来以为今天晚上要学高数的,但是听到任大佬要来讲课,我自然是很开心. 其实真正接触到他和照片给我的感觉完全不一样,rqy是一个非常单一的,没有在意其他过多的事情的人,包括从他的讲座来看,大佬把自 ...

  2. 牛客练习赛40 A 小D的剧场 (思维dp)

    链接:https://ac.nowcoder.com/acm/contest/369/A 题目描述 若你摘得小的星星 你将得到小的幸福  若你摘得大的星星 你将得到大的财富  若两者都能摘得 你将得到 ...

  3. squid详解(正向代理、透明代理、反向代理)

    squid http://www.squid-cache.org/ --官方网址 squid软件主要有两大应用:1,代理上网(正向代理,透明代理) 2,网站静态页面缓存加速(反向代理) 三种代理类型: ...

  4. Windows系统服务管理

    1.用SC命令管理: 启动redis服务: C:\Users\Administrator>sc start redis 停止redis服务: C:\Users\Administrator> ...

  5. Ubuntu更改主目录文件名为英文

    Ubuntu的语言设置成中文之后,自己主目录下的桌面.下载.文档等文件夹全部为中文汉字,使用终端时,输入十分不方便.需要把文件夹改成英文,而不更改系统语言. 在终端中输入以下命令 export LAN ...

  6. 关于 tlb 文件

    来自:http://blog.csdn.net/lcl_data/article/details/7418387 tlb文件是什么?tlb文件是一个说明文件,通过TLB文件,用户可以得知你的DLL中的 ...

  7. 第一篇 - bsp抓取python中文开发者社区中的所有高级教程

    工具:python3.6  pycharm 库:bs4 + urllib 第一步:读取html源码 from bs4 import BeautifulSoup import urllib.reques ...

  8. 斯坦福大学公开课机器学习: neural networks learning - autonomous driving example(通过神经网络实现自动驾驶实例)

    使用神经网络来实现自动驾驶,也就是说使汽车通过学习来自己驾驶. 下图是通过神经网络学习实现自动驾驶的图例讲解: 左下角是汽车所看到的前方的路况图像.左上图,可以看到一条水平的菜单栏(数字4所指示方向) ...

  9. 缓存数据库-redis数据类型和操作(list)

    转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部( ...

  10. io系列之字节流

    java中io流系统庞大,知识点众多,作为小白通过五天的视频书籍学习后,总结了io系列的随笔,以便将来复习查看. 本篇为此系列随笔的第一篇:io系列之字节流. 一.字节流的File读写操作. Inpu ...