ASP.NET MVC/C#开发Tips记录。

移动开发 Android
编写CSS的时候,先将在原有的cshtml的<style>...</style>,因为这样就有相关的智能提示。写完后再做成单独的css文件,使用@Styles.Render或直接link载入。(现在版本的VS已经改进了这点)

1.编写CSS的时候,先将在原有的cshtml的<style>...</style>,因为这样就有相关的智能提示。写完后再做成单独的css文件,使用@Styles.Render或直接link载入。(现在版本的VS已经改进了这点)

 

2.在Action中使用View(...)会将Viewbag里面的东西传过去,但是使用RedirectToAction(...)可能Viewbag里面的东西传不过去。

 

使用反射来处理enum类型的话,代码如下:

 

  view plaincopy在CODE上查看代码片派生到我的代码片

 

  1. Type XXXXX= assembly.GetType("YYYYY"true); 
  2. 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

 

 

责任编辑:chenqingxiang 来源: 网络整理
相关推荐

2009-07-24 13:20:44

MVC框架ASP.NET

2009-07-31 12:43:59

ASP.NET MVC

2014-06-30 09:22:38

ASP.NETBootstrap

2009-08-03 14:33:02

.NET平台c#ASP.NET

2009-08-20 10:13:49

ASP.NET和C#的

2009-07-23 14:31:20

ASP.NET MVC

2009-07-20 10:53:59

ASP.NET MVC

2009-07-23 15:44:39

ASP.NET MVC

2009-07-22 10:09:59

ASP.NET MVC

2009-07-22 13:24:24

ASP.NET MVC

2009-09-09 09:09:17

ASP.NET MVC

2009-07-28 17:03:55

ASP.NET VB.

2009-07-30 13:45:40

ASP.NET开发模式MVC模式

2010-06-23 15:44:03

ASP.NET MVC

2009-07-24 11:33:12

MVC单元测试ASP.NET

2010-03-19 09:17:16

ASP.NET MVC

2009-07-22 13:08:55

拯救UpdatePanASP.NET MVC

2009-07-22 10:34:37

ActionInvokASP.NET MVC

2009-07-23 11:33:18

2009-07-22 10:13:31

异步ActionASP.NET MVC
点赞
收藏

51CTO技术栈公众号