MVC 笔记(二)
HttpUtility.HtmlEncode来预处理用户输入,这能阻止用户向视图中用链接注入js代码或html标记
、[Required]:非空验证
、[StringLength(**)]:设置字符的长度
2.1、[StringLength(**,MinimumLength=*):设置字符长度MinimumLength:设置最短长度
、[RegularExperssion(@"正则表达式")]:正则验证
、[Range(,)]:Range特性用来指定数值类型值的最小值和最大值,Range特性可用于int类型和double类型,它还有一个重载Range(Typeof(decimal),"0.0","49.99"]
二。验证特性;
2.1[Remote("CheckUserName","Account")]:指定了执行此验证所需要调用的Action方法,
以及此Action所在的Controller。前面是action后面是controller
2.2[Compare("验证类型")]:用于确保模型对象的两个属性拥有相同的值 .3要对表单进行验证时得把submit放在表单内
三:ViewData,TempData,ViewBag
ViewData 和 TempData 都可以传递弱类型数据,区别如下: ViewData 只在当前 Action 中有效,生命周期和 View 相同; TempData 的数据至多只能经过一次Controller传递,并且每个元素至多只能被访问一次,访问以后,自动被删除。 TempData 一般用于临时的缓存内容或抛出错误页面时传递错误信息,可以将TempData 在使用之前存储到相应的 ViewData 中以备循环使用。
TempData 可以跨页面传值 ViewBag和ViewData生命周期相同,也是对但前View有效,不同的是ViewBag的类型不再是字典的键值对结构,而是dynamic动态类型,属于MVC3里面新增的部分。 四:
Controller中的public的方法都被当作是Action方法。 五:@ajax.ActionResult
使用@ajax.ActionResult时应该先引用<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>文件 六: @Html.Partial("_LogOnPartial"):相当于用户控件,引用名为“_LogOnPartial”的用户控件 A.Layout属性:等同于原来的MasterPageFile属性. B.@RenderBody()方法:直接渲染整个View到占位符处,而不需要原来所使用的<asp:Content />. C.@RenderPage()方法:渲染指定的页面到占位符处. D.@RenderSection方法:声明一个占位符,和原来的<asp:ContentPlaceHolder />功能类似. E.@section标记:对@RenderSection方法声明的占位符进行实现,和原来的<asp:Content />功能类似. URL:"controll"/"Action"
RenderAction:"Action"/"Controll" Html.RenderPartial与Html.RenderAction这两个方法都是用来在界面上嵌入用户控件的。 @Html.RenderPartial("用户控件名")//必须放在调用者同一目录下,也可以放在View/Shared中
@Html.RenderAction("Action","Control");// @Html.ActionLink("名字","Action","Controll","参数","属性名") 六:路由
在这里提及一下string[] namespaces参数.~
当在你的MVC3应用程序里建立了不是以Controllers结尾的控制器类命名空间时,就可以通过设置这个属性来让路由系统在url匹配时应该去找那些命名空间
routes.MapRoute("namespaces",
"{controller}/{action}",
null, null,
new string[] { "MvcApplication1.Custom" }
); 设置后此参数后路由系统就会去找
MvcApplication1.Controllers, MvcApplication1.Custom下带Controller结尾的继承于Controller的类了! ⑦:URL重写的例子
"{controller}.{action}/{id}", // 带有参数的 URL//URL格式为http://localhost:2741/home.Index 在url重写中的参数必须和路由中定义的参数一致比如要传{productName}-{id}//页面用的时候传的也是要new{productName="xx",id="xx"} FormCollection:可以获取表单传过来的值(不推荐使用)具体参照《使用FormCollection的陷阱》
///例
public ActionResult Index(FormCollection collection)
{
string name = collection["name"]; return View();
} 七、CodeFrist
配置文件的名字name必须和继承DbContext的类的名字相同,程序运行起来才会自动去找到配置文件的连接字符串(反射。。。。。对命名空间要求很严格) AsNoTracking:返回一个新的查询返回的实体将不会被缓存在DbContext或ObjectContext的。 Database.SetInitializer<DbEntities>(null);//不重新设置数据库
MVC 笔记(二)的更多相关文章
- Spring Mvc 笔记二之异常和文件上传
spring mvc的异常与文件上传 1.异常: spring注解版的异常有局部异常和全局异常 1.局部异常对单个controller有效;(在controller类写一 ...
- ASP.NET MVC 视图(二)
ASP.NET MVC 视图(二) 前言 上篇中对于视图引擎只是做了简单的演示,对于真正的理解视图引擎的工作过程可能还有点模糊,本篇将会对由MVC框架提供给我们的Razor视图引擎的整个执行过程做一个 ...
- ASP.NET MVC 路由(二)
ASP.NET MVC路由(二) 前言 在上一篇中,提及了Route.RouteCollection对象的一些信息,以及它们的结构所对应的关系.按照处理流程走下来还有遗留的疑问没有解决这个篇幅就来讲 ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}
笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...
- Mastering Web Application Development with AngularJS 读书笔记(二)
第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...
- Python 学习笔记二
笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔 ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
- webpy使用笔记(二) session/sessionid的使用
webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
随机推荐
- Selenium WebDriver 学习笔记
1. 打开VS2012 2. 新建工程(单元测试工程或控制台程序都可以, 看需求) 3. 工具->NuGet程序包管理器->程序包管理器控制台 4. 输入"Install-Pac ...
- js图片放大镜 可动态更换图片
现仅已.NET为例,HTML代码如下 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > & ...
- 转化json
/// <summary> /// 转换成JSON字符串 /// </summary> /// <param name="jsonObject"> ...
- 正确看待HTML5的语法变化
也许会有人问:“HTML4已经很普及了,如果改变基础语法,会不会有什么影响?” 我们都知道,在HMTL5之前几乎没有符合标准规范的Webu浏览器!在这种情况下,各个浏览器之间的互相兼容性和互操作性在很 ...
- Stall Reservations(POJ 3190 贪心+优先队列)
Stall Reservations Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4434 Accepted: 158 ...
- ASP.NET MVC 4.0 学习1-C#基础语法
1,方法多載,相同的方法名稱,不同的參數類型.數量 class Program { static void Main(string[] args) { Program newObject = new ...
- display:table-cell的惊天作用,直接惊呆你!
一 display:table-cell介绍 ... 二 用法 (1)高度不固定元素,垂直居中 ... (2)高度不固定列表元素,登高排列 ... (3)宽度不固定元素,平均分配 ...
- JS中各种宽度、高度、位置、距离总结
1.window.screen 浏览器与屏幕的距离,screenX(screenLeft),screenY(screenTop) 2.window.scrollTo(x,y) 将纵向滚动条移动到相对于 ...
- 【其他】IT公司的企业文化与竞争力
一直觉得三流企业靠成本竞争,二流企业靠体制竞争,一流企业靠文化竞争. 企业在竞争时候,总会提到一个词:核心竞争力.对于IT企业来说,核心竞争是什么?无论是技术也好,销售也罢,归根到底还是人才的竞争,优 ...
- 锁机制与原子操作 <第四篇>
一.线程同步中的一些概念 1.1临界区(共享区)的概念 在多线程的环境中,可能需要共同使用一些公共资源,这些资源可能是变量,方法逻辑段等等,这些被多个线程共用的区域统称为临界区(共享区),临界区的资源 ...