摘要: 我们遇到了一个问题,在RenderAction的时候需要向Action传递参数,之前实现的简陋的Html.RenderAction并没有对此提供支持,需要改进一下。向Action传参数,需要通过RouteValueDictionary,我们所要做的工作就是从Lamda表达式中获取参数名称与参数值,并还添加至RouteValueDictionary。阅读全文
posted @ 2012-05-16 08:58 dudu 阅读(910) 评论(6) 编辑
摘要: 今天在ASP.NET MVC代码时用到了Html.RenderAction,通过字符串指定Action的名称,有两点不爽。有这两点不爽,写代码的乐趣就大减。微软不让我们享受,我们就自己动手,丰衣足食,自己写一个支持Lamda表达式的Html.RenderAction。Lamda,给你写代码带来畅快感觉的Lamda!阅读全文
posted @ 2012-05-15 16:28 dudu 阅读(1489) 评论(15) 编辑
摘要: WCF的野心造成了它的庞大复杂,HTTP的单纯造就了它的简单优美。为了实现分布式Web应用,我们不得不将两者凑合在一起 —— WCF服务以HTTP绑定宿主于IIS。最近我们在实际开发中有个地方用WCF太麻烦,就小试了一下水果刀(ASP.NET Web API),感觉还不错。阅读全文
posted @ 2012-05-11 09:08 dudu 阅读(3538) 评论(44) 编辑
摘要: 博客园博客中的日历用的是ASP.NET WebForms的日历控件,它会为“上一月”、“下一月”的链接生成"__doPostBack()"的js调用。要解决的问题是如何在ASP.NET MVC Controller中加载包含WebForms日历控件的用户控件,并得到其输出的字符串,然后将__doPostBack的代码替换为ajax调用代码。阅读全文
posted @ 2012-05-03 12:30 dudu 阅读(1639) 评论(10) 编辑
摘要: 一边享受着乡村的宁静,一边写着博客,也是一种惬意。喜欢解决问题后写一篇博客。通过文字表达出来,会加深自己的理解,还经常会有新的收获,甚至会找到更好的解决方法。同时,还能分享给别人。一举多得,何乐而不为呢?这次要解决的问题是如何在用户注册时验证用户的邮箱?阅读全文
posted @ 2012-04-30 13:59 dudu 阅读(1483) 评论(5) 编辑
摘要: 这篇文章主要是分享一段代码,解决的问题是:通过 WebRequest 向 https://accounts.google.com/o/oauth2/token 发起 HTTP POST 请求,根据 authorization code 获取 access_token。阅读全文
posted @ 2012-04-28 22:29 dudu 阅读(306) 评论(1) 编辑
摘要: 默认情况下,jquery.validate.unobtrusive只在点击表单提交按钮时才触发验证,验证出错时,光标移入输入框不会清除错误提示信息。而我们的需求时,只要光标移出输入框(onfocusout)就触发验证,光标移入输入框(onfocusin)时清除错误信息。阅读全文
posted @ 2012-04-27 13:43 dudu 阅读(1105) 评论(7) 编辑
摘要: 在IE9中,在HTML多行文本框textarea中输入带有换行的内容,然后选中文本框中的内容Ctrl+C/Ctrl+V粘贴到记事本中,所有换行符会丢失,变成一行。经过测试,在IE6, IE8, Chrome, Firefox中都不存在这个问题。阅读全文
posted @ 2012-04-14 20:39 dudu 阅读(1676) 评论(6) 编辑
摘要: 来自博客园开发团队开发前线最新消息:在EF中,如果实体A关联了实体B,你想在加载实体A的同时加载实体B。通常做法是在LINQ查询中使用Include()。但是,如果你在查询条件中用到了实体B,EF会自动加载实体B,这时Include不仅是多余的,而且还会增加额外的LEFT OUTER JOIN查询,影响性能。阅读全文
posted @ 2012-04-13 17:36 dudu 阅读(1835) 评论(20) 编辑
摘要: 对于“不可选择(unselectable)”,三种浏览器虽然实现方法不一,但都能实现;对于“不可复制(uncopyable)”,只有Firefox独领风骚!-webkit-user-select: none; 一招致胜。Chrome与IE9只能另辟蹊径(目前还没辟出来)。阅读全文
posted @ 2012-04-09 13:08 dudu 阅读(1534) 评论(15) 编辑
摘要: 我们这次遇到的IIS应用程序池崩溃(Crash),是由于在使用System.Threading.Tasks.Task进行异步操作时产生了未处理的异常。解决方法就是捕获Task中所有代码的异常。MSDN上的推荐做法是用Task.ContinueWith观察Task中抛出的异常并进行处理。阅读全文
posted @ 2012-04-05 11:28 dudu 阅读(2762) 评论(18) 编辑
摘要: 将Func类型的变量作为参数传给Where方法进行LINQ查询时,Enitity Framework会产生全表查询,将整个数据库表中的数据加载到内存,然后在内存中根据Where中的条件进一步查询。不要用Func,用Expression>。阅读全文
posted @ 2012-04-01 14:00 dudu 阅读(1994) 评论(14) 编辑
摘要: 在解决了ASP.NET访问共享文件夹的问题之后,我们遇到了一个新的问题。在找找看(http://zzk.cnblogs.com/)调度建立索引过程中,在共享文件夹中创建新文件夹时出现错误。在互联网海洋中苦苦寻觅。。。终于找到了线索!它就是 —— 。阅读全文
posted @ 2012-03-27 15:21 dudu 阅读(1686) 评论(2) 编辑
摘要: 博客园找找看(http://zzk.cnblogs.com)的索引文件占用空间太大,需要移至另外一台服务器,所以要解决“在ASP.NET中通过共享文件夹访问索引文件”的问题。参考园子里的asp.net访问网络映射盘的问题文章,我们解决了这个问题,在这里分享一下。阅读全文
posted @ 2012-03-27 12:20 dudu 阅读(2085) 评论(17) 编辑
摘要: ASP.NET在检测XSS跨站脚本攻击时,会将查询字符串解码,然后调用System.Web.CrossSiteScriptingValidation.IsDangerousString()进行检查。所以任何对查询字符串中的尖括号进行直接的UrlEncode编码操作(比如Javascript的encodeURIComponent, escape, encodeURI)都无法逃过ASP.NET的检查。阅读全文
posted @ 2012-03-21 16:23 dudu 阅读(1388) 评论(17) 编辑
摘要: LockFlag在数据库定义的类型是smallint,所以在定义实体类时,理所当然地用short(或int16)。但是 Entity Framework 的想法却与众不同,它只要遇到short(或int16)类型,就会生成CAST转换为int进行查询。阅读全文
posted @ 2012-03-19 18:28 dudu 阅读(551) 评论(10) 编辑
摘要: 终于找到Chrome operation timed out的原因:IIS不支持Chrome的False Start特性;某种原因造成Chrome短暂的无法与Google服务器连接,从而无法判断出目标站点是否支持False Start,于是默认启用False Start进行访问。阅读全文
posted @ 2012-03-16 10:33 dudu 阅读(1075) 评论(6) 编辑
摘要: 最近发现WCF客户端异步调用还是慢,原来问题不在异步调用(client.CreateAsync),而是在WCF客户端的关闭(client.Close)。目前还没找到“如何在异步调用时关闭WCF Client”的解决方法,先用Task.Factory.StartNew()凑合着,让WCF客户端在另外一个线程中慢慢关闭。阅读全文
posted @ 2012-03-05 17:01 dudu 阅读(2125) 评论(4) 编辑
摘要: 经过测试的浏览器:IE6, IE7, IE8, IE9, Firefox, Chrome, Safiri, Maxthon阅读全文
posted @ 2012-02-03 18:14 dudu 阅读(1064) 评论(8) 编辑