1.编写CSS的时候,先将在原有的cshtml的<style>...</style>,因为这样就有相关的智能提示。写完后再做成单独的css文件,使用@Styles.Render或直接link载入。(现在版本的VS已经改进了这点)
2.在Action中使用View(...)会将Viewbag里面的东西传过去,但是使用RedirectToAction(...)可能Viewbag里面的东西传不过去。
使用反射来处理enum类型的话,代码如下:
view plaincopy在CODE上查看代码片派生到我的代码片
- Type XXXXX= assembly.GetType("YYYYY", true);
- Array enumArray = Enum.GetValues(XXXXX);
3如果使用database first,然后在项目进行中,添加使用identity关键字来标识字段,那么记得双击edmx文件,右键,update from database。否则会报IDENTITY_INSERT问题。
4使用CTRL+SHIFT+F可以呼出一个更加强大的查找窗口,会将找到的所有结果列出来而不是一个一个选中显示出来。
VsVim这个插件简直赞!
5 MVC5是通过name来绑定元素的,不是id。但一般为了保险,id和name设置为一样。
6 view plaincopy在CODE上查看代码片派生到我的代码片
7 在一个叫做Create的Action中return Index(),如果Index()最后一句是return View(),那么还是会跳转到create.cshtml中,说明是最上层的Action决定了默认cshtml页面。
8 靠,今天搞了半天,想把ASP.NET MVC5部署到阿里云上,和IIS斗争了半天,访问网站老是说什么MvcApplication无法加载,原来是要把Debug改成Release。可能还要注意CPU平台问题。
9 VS2013中,如果发现代码提示中,不是默认选中最佳提示项,而是仅仅是显示出来(即,无法通过Enter键来补全),按ctrl+alt+space来激活suggestion model。
10 工程测试中用的Microsoft.VisualStudio.TestTools.UnitTesting,需要添加的reference是Microsoft.VisualStudio.QualityTools.UnitTestFramework
11 对于某些问题,由于文档不全或难以理解,从而导致不知道某些类型的名字。这个时候可以再代码中获取到这个元素,再通过GetType().ToString()来了解。比如搞Open XML的时候。
12 C#中,dictionary和C++中的不一样,如果一个key没有,却是用了[“xxx”]来引用,那么会抛出异常;调用Add函数也是,如果先前有了这个key,那么也会抛出异常。所以最好先前用containskey来确认是否存在。
13 LINQ中最后还是转换成SQL查询的,所以注意,即便是看上去像是string的"=="简单比较,其实也是像SQL一样,不区分大小写的。
14 使用ASP.NET MVC中返回json,要记得return Json(..)的第二个参数,要allowGet,否则服务器会返回500.
15 如果将JS代码单独做成文件来引用,那么js中的url,比如var actionUri = 'Register',默认是和该js所在CSHTML文件对应的controller下的方法。
16 有钱一定要买一套Resharper的VS插件!实在是吊!炸!天!
17 如果使用reference类型的变量,并且希望把他加入到list或者别的使用的地方,尽量使用clone,否则指向的是同一个对象。
18 除非添加的东西就是微软的,比如Entity Framework,其他的库千万不要用Nuget来管理、下载、更新等,否则常常版本落后太多,bug蛋疼,如raphael.js.
19 发现个非常奇葩的事情,如果在ASP.NET MVC5中使用的一些cs文件不是本工程的,而是引用自其他工程的,那么即便如此,如果直接将本工程复制到IIS的网站目录下(没有复制被引用的文件),那么也能正常运行。猜测,实际上这些代码已经被编译到Bin文件中了。
20 类B继承类A,那么如果B可修改继承下来的函数的返回值,这也算是覆盖,即需要new该函数;如果是数据成员,则名字一样就要用new;但是如果是virtual的数据成员,必须要类型也一样才能override