zoukankan      html  css  js  c++  java
  • mvc学习经典

    1.mvc传参

    传参数DeptEdit?DeptId=efdc5312-8f32-4605-8329-28565f384b2c

    那么在相应Controller有对应方法 public ActionResult DeptEdit(string DeptId),这个DeptId和参数名称得一致

    2.viewbag和viewdata

    其实没啥区别,ViewBag其实本质就是ViewData,只是多了层Dynamic控制。

    http://www.cnblogs.com/wintersun/archive/2012/01/21/2328563.html

    http://www.cnblogs.com/lindaWei/archive/2013/01/15/2860028.html

    3.Entity Framework中IQueryable, IEnumerable, IList的区别

    http://www.cnblogs.com/hiteddy/archive/2011/10/01/Difference_among_IQueryable_IEnumeralb_IList_in_Entity_Framework.html

    http://www.cnblogs.com/chengxiaohui/articles/2088837.html

    http://weishangxue.blog.163.com/blog/static/21575188201131621956899/

    IList(IList<T>)会立即在内存里创建持久数据,这就没有实现“延期执行(deferred execution)”

    IQeurable(IQuerable<T>)不会立即在内存里创建持久数据,只有遍历它(如通过foreach)、把它转换成List(ToList)等情况下才会向内存加载数据,它可以实现“延期执行”

     一言以蔽之,本地数据源用IEnumerable<T>,并且查询的逻辑可以直接用你所定义的方法的逻辑(因为有上下文),远程数据源用IQueryable<T>,无法直接使用你所定义的方法的逻辑,必须先生成表达式树,查询由源对象处理。

    看看例子更明白:

    首先是本地数据源:

                List<string> names = new List<string> { "Cai", "Wxied", "Beauty" };

               然后我们看看names的where方法

                 VS的智能提示会告诉我们,这个扩展方法有2个重载,必须传入Func<T>,返回IEnumerable<T>。

               再让我们来看看一个远程数据源:

                DataClasses1DataContext dataContext = new DataClasses1DataContext();

                dataContext.Customers.Where这个方法有4个重载。必须传入Expression<Func<T>>,返回IQueryable<T>。

    http://www.cnblogs.com/chengxiaohui/articles/2088837.html

     IQueryable接口与IEnumberable接口的区别:  IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了,而IQueryable<T> 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令,它并不是把所有数据都加载到内存里来才进行条件过滤。

    4.两个问号??

    C#中两个问号的作用是判断??左边的对象是否为null,如果不为null则使用??左边的对象,如果为null则使用??右边的对象。

    比如:a = b ?? c,如果b为null,则a = c,如果b不为null,则a = b。

    5.post和get

    http://zhidao.baidu.com/link?url=JOJRQTMWlHlCbZlqyUZnJCnAiL7R1o1fImESNJg4_5-8rvbmMstMMCb2nPqQo8yfbKJIRVW0Lgbqrqw93VtJP_

    6.ValidateAntiForgeryToken

    禁止跨站攻击

    7.Bundle捆绑压缩技术

    Script文件引用:@Scripts.Render(virtualPath[,virtualPath1][,virtualPath2][,...])
    CSS文件引用: @Styles.Render(virtualPath[,virtualPath1][,virtualPath2][,...])

     bundles.Add(new ScriptBundle("~/ad/Scripts/shared_standardnav.js").Include("~/Areas/Admin/Scripts/shared_standardnav.min.js"));

    前面为虚地址,后面为包含的文件,可以多个。

    http://www.cnblogs.com/zxktxj/archive/2013/06/04/3116352.html

    8.C#扩展方法

    http://blog.csdn.net/todototry/article/details/5155907

    定义的时候需要用this,this是它和一般的方法的区别符。如下,这样只要引用此命名空间,所有string属性的值都拥有了以下扩展的方法了

    public static string ToL1(this string kstr) 
    {}

    9.string format

    public static string USER_ALL_MODULE = "qm_cache_all_module_{0}";
    
    string key = string.Format(QM.Common.SysConst.USER_ALL_MODULE, UserId);

    10.高内聚、低耦合

    一个类之间各种属性方法之间高度聚集,低耦合就是和每个类有尽量少的重复性的东西。

  • 相关阅读:
    Effective Java 第三版——72. 赞成使用标准异常
    Effective Java 第三版——71. 避免不必要地使用检查异常
    Effective Java 第三版——70. 对可恢复条件使用检查异常,对编程错误使用运行时异常
    Effective Java 第三版——69. 仅在发生异常的条件下使用异常
    Effective Java 第三版——68. 遵守普遍接受的命名约定
    Effective Java 第三版——67. 明智谨慎地进行优化
    Effective Java 第三版——66. 明智谨慎地使用本地方法
    Effective Java 第三版——65. 接口优于反射
    Effective Java 第三版——64. 通过对象的接口引用对象
    Effective Java 第三版——63. 注意字符串连接的性能
  • 原文地址:https://www.cnblogs.com/llk8/p/3510365.html
Copyright © 2011-2022 走看看