zoukankan      html  css  js  c++  java
  • MVC 笔记(二)

    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);//不重新设置数据库
  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/sumg/p/3744810.html
Copyright © 2011-2022 走看看