ASP.NET MVC 3 笔记
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 笔记的更多相关文章
- ASP.NET MVC学习笔记-----Filter2
ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...
- ASP.NET MVC学习笔记-----Filter
ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...
- ASP.NET MVC学习笔记-----Filter(2)
接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用,它需要实现IActionFilter接口: public ...
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
ASP.NET MVC 学习笔记-2.Razor语法 1. 表达式 表达式必须跟在“@”符号之后, 2. 代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...
- 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 ...
- 【MVC5】ASP.NET MVC 项目笔记汇总
ASP.NET MVC 5 + EntityFramework 6 + MySql 先写下列表,之后慢慢补上~ 对MySql数据库使用EntityFramework 使用域用户登录+记住我 画面多按钮 ...
- 【转】ASP.NET MVC学习笔记-Controller的ActionResult
1. 返回ViewResult public ActionResult Index() { ViewData["Message"] = "Welcome ...
- ASP.NET MVC学习笔记-----使用自定义的View Engine
我们都知道在ASP.NET MVC中自带了Razor View Engine,Razor十分的强大,可以满足我们绝大部分的需要.但是ASP.NET MVC的高度可扩展性,使我们可以使用自定义的View ...
- ASP.NET MVC学习笔记-----ActionInvoker
还是这张图: 当ControllerFactory生成Controller实例后,这时就需要使用ActionInvoker来选择调用一个合适的Action执行.ASP.NET MVC提供的基类Cont ...
- ASP.NET MVC 学习笔记(1)
从头开始系统地学习ASP.NET MVC 为什么要学习ASP.NET MVC?原因很多,可以先来看一下最早的ASP.NET WebForm的一些缺点: 传说中面试经常要问到的ASP.NET WebFo ...
随机推荐
- Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境
在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为m ...
- PHP安装-phpMyAdmin+Discuz
PHP安装-phpMyAdmin+Discuz基于Apache和MySQL安装完成之后继续安装PHP.以构建LAMP动态网站平台.http:./configure --prefix=/usr/loca ...
- debian源
修改debian9 stretch源 修改配置文件/etc/apt/sources.list 修改成163源: deb http://mirrors.163.com/debian/ stretch m ...
- HTML 5 canvas globalCompositeOperation 属性
做一个canvas鼠标跟随动画的时候用到了,就copy w3c的解释整理一番: globalCompositeOperation 属性设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上. 源 ...
- 我眼中的 Docker(二)Image
Docker 安装 如何安装 docker 详见官网: installation 或者 中文指南. 不过 linux 上我推荐用 curl 安装,因为 apt-get 中源要么没有 docker,要么 ...
- [WC2019] 数树
[WC2019] 数树 Zhang_RQ题解(本篇仅概述) 前言 有进步,只做了半天.... 一道具有极强综合性的数数好题! 强大的多合一题目 精确地数学推导和耐心. 有套路又不失心意. 融合了: 算 ...
- ImageMagick 笔记: 索引颜色(index color)、锁定图层,透明 png 转 gif (保持清晰度)
今天在处理一张 png 透明背景的图片,大小: 16KB, 尺寸: 400 x 300,用到一段代码,也许对以后有用. /** 带透明背景和阴影的png图片, 转换成 gif, [索引色] + [锁住 ...
- TestNg 8.参数化测试 - xml
有的时候,case需要参数,那么,传餐怎么传? 我的目录结构:首先建一个包叫做parameter,然后在resource里面新建一个parameter.xml文件 看以下代码: ParameterTe ...
- 高级组件——工具栏JToolBar
import javax.swing.*; import java.awt.*; public class Demo extends JFrame { public Demo() { setTitle ...
- mysql 5.7 启动脚本
最近这段时间,在看mysql,安装了,也应用过,对于生产环境中,一般都选择使用source code安装,在安装的时候可以自定义相关路径和内容,对于生产环境来说更有效.相对于mysql 5.5的安装, ...