• 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);//不重新设置数据库
  • 相关阅读:
    《不懂说话你怎么带团队》读书笔记
    Java内存模型与指令重排
    线程的基本操作
    Spring MVC核心技术
    Spring MVC注解式开发
    Spring MVC执行流程
    大厂技术博客汇总
    内嵌tomcat启动速度慢
    Java 对IP请求进行限流.
    Java过滤XSS脚本, 可通过Appscan扫描
  • 原文地址:https://www.cnblogs.com/sumg/p/3744810.html
Copyright © 2020-2023  润新知