HttpUtility.HtmlEncode来预处理用户输入,这能阻止用户向视图中用链接注入js代码或html标记 1、[Required]:非空验证 2、[StringLength(**)]:设置字符的长度 2.1、[StringLength(**,MinimumLength=*):设置字符长度MinimumLength:设置最短长度 3、[RegularExperssion(@"正则表达式")]:正则验证 4、[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("验证类型")]:用于确保模型对象的两个属性拥有相同的值 2.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);//不重新设置数据库