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 笔记(二)的更多相关文章

  1. Spring Mvc 笔记二之异常和文件上传

    spring mvc的异常与文件上传 1.异常: spring注解版的异常有局部异常和全局异常                1.局部异常对单个controller有效;(在controller类写一 ...

  2. ASP.NET MVC 视图(二)

    ASP.NET MVC 视图(二) 前言 上篇中对于视图引擎只是做了简单的演示,对于真正的理解视图引擎的工作过程可能还有点模糊,本篇将会对由MVC框架提供给我们的Razor视图引擎的整个执行过程做一个 ...

  3. ASP.NET MVC 路由(二)

     ASP.NET MVC路由(二) 前言 在上一篇中,提及了Route.RouteCollection对象的一些信息,以及它们的结构所对应的关系.按照处理流程走下来还有遗留的疑问没有解决这个篇幅就来讲 ...

  4. 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  5. jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}

    笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...

  6. Mastering Web Application Development with AngularJS 读书笔记(二)

    第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...

  7. Python 学习笔记二

    笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔 ...

  8. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  9. webpy使用笔记(二) session/sessionid的使用

    webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...

  10. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

随机推荐

  1. UIWindow & UIWindowLevel详解

    一.UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面.UIWindow在程序中主要起到三个作用: 1.作为容器 ...

  2. js基础-需要注意的地方

    ---因为跟别的语言很像,所以只记录要注意的地方 1.== 和 === 的区别 ===要求类型也相等 "5"==5 = ture "5"===5 = false ...

  3. NSBundle 类

    NSBundle NSBundle继承于NSObject,NSBundle是一个程序包,其中包含了程序会使用的资源(图像,声音,编辑好的代码,nib文件). 一. 初始化NSBundle + (ins ...

  4. 用ant重新编译jdk加入调试信息

    (文章后面提供了ant和build.xml打包之后的build.zip下载,解压build.zip,然后将apache-ant-1.9.2-bin.zip解压即完成了ant安装,也可到http://a ...

  5. 再谈c++中的引用

    在<从汇编看c++的引用和指针>一文中,虽然谈到了引用,但是只是为了将两者进行比较.这里将对引用做进一步的分析. 1 引用的实现方式 在介绍有关引用的c++书中,很多都说引用只是其引用变量 ...

  6. jQuery常用选择器汇总

    一.基本选择器 <body> <div> <div id="div1"> aaaaaaaaaaa</div> <div cla ...

  7. python-整理--sqlite数据库访问

    python 自带sqlite3数据库访问模块. sqlite3 以下写一个数据库访问类 ''' 2016年2月5日 描述: 操作sqlite数据库的封装 主要功能: 将sqlite数据库数据转为py ...

  8. C++----练习--while求和

    1.完成1+2+3+...+99+100 #include<iostream> int main() { std::cout<<"本程序完成1 + 2 + 3 ... ...

  9. 从QWidget继承的圆形进度条QRoundProgressBar,只有370行代码(别忘了有现成的QProgressDialog)

    是学习绘制控件的绝佳例子: http://blog.csdn.net/liang19890820/article/details/51957568 https://sourceforge.net/pr ...

  10. spring3.0事务的配置

    第一种配置方法:基于XML的事务管理 这种方法不需要对原有的业务做任何修改,通过在XML文件中定义需要拦截方法的匹配即可完成配置,要求是,业务处理中的方法的命名要有规律,比如setXxx,xxxUpd ...