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.高内聚、低耦合
一个类之间各种属性方法之间高度聚集,低耦合就是和每个类有尽量少的重复性的东西。