随笔分类 -  ASP.net:MVC、Razor、LINQ

摘要:在jqueryui1.8.19中,发现它没有使用原来1.8.17里边那个巨大的260K的单个js,而是把各种JS散开放了,有效地防止了JS下载的带宽。不过放错顺序,会出现各种错误,不一而足,比如标题括号中的那个位置就经常出做,自己测试及上网搜索了一下,找到个现在可用的顺序,供大家参考。(在搜索过程中发现有人1.4.X就开始用分离的多个小JS,但此之前本人一直单个的JS)jquery本身必须放在第一位:<scriptsrc="../../../Scripts/Jquery1.7.2/jquery-1.7.2.js"type="text/javascript&q 阅读全文
posted @ 2012-04-28 22:01 Java EE 阅读(250) 评论(0) 推荐(0)
摘要:之一,之二合并显而易见的代码所谓显而易见的代码,就是看上去和别处相同的代码。在这个例子中,就是View‘中初始页面显示的内容与未来刷新的内容重复;Controller中初始显示的运算和刷新的相同。Controller好办,如此: private void PrepareAssignItemsData(int sprintID) { var sprint = ... var team = ... var overTimes = ...; var itemsTreeInSp... 阅读全文
posted @ 2012-02-20 10:28 Java EE 阅读(142) 评论(0) 推荐(0)
摘要:之一,之二案例背景本文将介绍如何通过一行代码实现下图中的功能。红色框中是http://blog.csdn.net/cheny_com/article/details/7234619提到的AjaxValue,也只有一行代码,看上去类似一个下拉菜单,但能从内部把Ajax功能执行完毕并显示到屏幕上。现在要做的业务需求是:在上述任务分配界面,做右边红框边点选人员并调整名字后,左边的蓝框中整个页面要更新。这是常见的一种业务操作,没有什么新奇之处,本文讨论的是:能否只用一行代码实现?当然,这里所说的一行代码,是指在调用处只需要一行代码(因此以后这类功能都只需一行代码),后台则需要一些储备。传统实现步骤1. 阅读全文
posted @ 2012-02-20 10:27 Java EE 阅读(170) 评论(0) 推荐(0)
摘要:之一,之二,之三之前讲到,方法声明为: @SFCUI.AjaxValue(story.ID, effortValue.ToString(), Effort.EffortPlannedValues, "/SFC/Efforts/AjaxSetEffortPlanned?itemID=" + story.ID + "&value={0}", ajaxOnSuccess: "refreshLeftPad"); 调用的例子: @SFCUI.AjaxValue(story.ID, effortValue.ToString(), Effo 阅读全文
posted @ 2012-02-05 15:42 Java EE 阅读(167) 评论(0) 推荐(0)
摘要:之一,之二,之三 先重温一下原则:最小信息原则:方法接口应只传递最必须的业务信息。包括两个层面:1. 技术信息不要暴露2. 业务信息不能重复业务信息分析先别管技术问题,想一想做这个事情需要哪些数据才能完成?1. 原来的值是多少(显示用)2. 可能的值有哪些(选择用)3. 点一个值后,应该执行什么操作(这个是核心业务)4. 返回后做什么(刷新用)还有一些问题哪去了?5. 返回的值刷新到哪里?这个调用者不管,他让我们安排,显示也是我们显示(比如一个DIV),刷新自然就是刷新我们显示的那个位置。6. 如果返回后什么都不做怎么办?看着办。最终方法接口设计为: public static ... 阅读全文
posted @ 2012-02-05 13:40 Java EE 阅读(230) 评论(0) 推荐(0)
摘要:之一,之二,之三 有很多时候,需要我们在代码中执行很多重复的工作,这时候要涉及到如何使用可复用的方法来解决重复性问题。比如一个项目管理系统,要求在不同的页面的不同位置都能调整任务的估算工作量,而且要使用Ajax方法(因为每次调整后都要实时看到总计),应该如何做呢?从操作步骤上看,大致分为这么几步:0. 显示当前的值(应该看上去能修改的样子)1. 点击当前值,弹出一个小窗口,里边是可能的取值(比如0.25, 0.5, 1, 2, 3,5……天),且显示为链接(因此用户会去点)2. 点击其中一个链接(Ajax链接),执行某个Ajax功能3. 若成功,应该返回新的数值4. 如果需要,更新某些计算结果 阅读全文
posted @ 2012-02-05 13:40 Java EE 阅读(124) 评论(0) 推荐(0)
摘要:在使用LINQ过程中偶然有点心得想记录下来,没想到查阅到一个非常好的网站,直接转载了。1. 【推荐】LINQ系列文章,适合按部就班学习或查阅http://kb.cnblogs.com/page/42465/本系列文章导航LINQ to SQL语句(1)之WhereLINQ to SQL语句(2)之Select/DistinctLINQ to SQL语句(3)之Count/Sum/Min/Max/AvgLINQ to SQL语句(4)之JoinLINQ to SQL语句(5)之Order ByLINQ to SQL语句(6)之Group By/HavingLINQ to SQL语句(7)之Ex. 阅读全文
posted @ 2011-12-04 10:11 Java EE 阅读(102) 评论(0) 推荐(0)
摘要:环境:asp.net mvc3 vs2010当使用多Area工作时,为了能在Area之间共享Shared目录,需要注册各自Shared地址。在Global.asax.cs,需要如下添加不同Area的Engine: public class MvcApplication : System.Web.HttpApplication { ... protected void Application_Start() { RegisterRoutes(RouteTable.Routes); ViewEn... 阅读全文
posted @ 2011-11-27 17:18 Java EE 阅读(169) 评论(0) 推荐(0)
摘要:如果有各种动物,比如Dogs/Cats/Cows/...,都有不同的Age方法,若想从其基类用相同的方法ShowAge来显示这些不同的Age,自然就可以借用基类Animal的virtual函数,比如:public class Animal { public virtual Age { get {....} set {....} } public ShowAge() { Show(Age); } } public class Dog : Animal { public override Ag... 阅读全文
posted @ 2011-11-24 23:15 Java EE 阅读(125) 评论(0) 推荐(0)
摘要:在cshtml或aspx/ascx中制作链接时,若参数可能是中文,则需要使用HttpUtility.UrlEncode():@Html.Link("角色", "/SFC/Users/Users2Roles?user=" + HttpUtility.UrlEncode(User.Identity.Name))而在对应的Action中,一切照常,不需要"Decode”(也有帖子说需要,但本人实验的结果是不需要): public ActionResult Users2Roles(string user) { ViewBag.User = use... 阅读全文
posted @ 2011-08-15 11:51 Java EE 阅读(399) 评论(0) 推荐(0)
摘要:刚开始的时候非常认同asp.net中MVC的Action的布局方法:无论大小,只要是一个动词,都给一个单独的页面,比如Create/Edit/Detail/Index。编写了一段时间后,又发现这样很不方便,尤其是像“创建角色”这样的页面,就一个TextBox,其他什么都没了,单独编写一个Create一个Edit,不如在Index页面上方放一个TextBox,底下已经存在的角色也直接用TextBox而不是文本,这样想创建就创建,想编辑就编辑。又编写了一段时间,又发现这样有风险。因为在另外一个页面上我把所有信息也这样做的,但这个页面会有大量的用户访问,很容易出现大家同时编辑同时更新的问题,锁都锁不 阅读全文
posted @ 2011-08-09 15:35 Java EE 阅读(239) 评论(0) 推荐(0)
摘要:有两个函数,假设让我们实现,那么怎样处理异常情况呢?Roles.AddUserToRole(user, role); 在user已经是role的情况下应当怎样?Roles.RemoveUserFromRole(user, role); 在user已经不是role的情况下应当怎样?以前遇到过这类情况,在这两种情况下都会自然放行,因为目的已经达到了,为何要考虑以往的情况呢?但实际上这两个函数都是asp.net中自带的函数,且分别会返回两个exception。从技术实现的角度看,这样非常多余,但从应用的角度看,越想越有道理。假设这是一个应用系统,现在底层代码收到了一个指令为一个用户授权或解授权,而此 阅读全文
posted @ 2011-07-29 16:38 Java EE 阅读(99) 评论(0) 推荐(0)
摘要:各种思路和顺序都试过。最开始时先编写Model,毕竟Model是所有一切的基础,再说没有Model,Controller里边用到该怎么办。后来改成先编写View,View才是用户能看到的东西啊,不知道用户看什么,怎么知道应该提供什么Model。现在先编写Controller。在讨论哪种次序最好之前,必须弄清楚“好与不好”的标准。开发次序好与不好的标准1. 顺畅比如编完Model的10个方法,再编Controller的10个方法,再编10个View是不顺畅的。从敏捷的角度看,就是同时开启了多个故事,而这些故事要等到最后才能同时完成,属于不好的实践。而先编controller中的1个方法,然后马上 阅读全文
posted @ 2011-07-08 12:27 Java EE 阅读(138) 评论(0) 推荐(0)
摘要:工作中遇到这个问题,问别人解决了。答案在问题的下半部分,仅供参考。http://stackoverflow.com/questions/6501812/how-to-use-danymic-accept-value-in-jqueryui-droppable 点击下载免费的敏捷开发教材:《火星人敏捷开发手册》 阅读全文
posted @ 2011-06-28 15:57 Java EE 阅读(274) 评论(0) 推荐(0)
摘要:很多时候删除某个元素后,我们都希望回到原来的页面,如何实现呢?假设在XController的index.cshtml(或aspx)中有:<a><href = "/area/XController/delete?id=10">删除</a>,为了让删除后回到index页面,可以使用:<a><href = "/area/XController/delete?id=10&backUrl=" + @Request.Url.ToString()>且在XController.cs中,将原来的[Http 阅读全文
posted @ 2011-06-14 17:28 Java EE 阅读(237) 评论(0) 推荐(0)
摘要:继承是比较简单的,比如在Designer.cs中有一个类叫 Text100,可以在Text.cs中直接写:public class Text //这个就是基类 { private int _length = 0; public Text(int length) { _length = length; } } public partial class Text100 : Text //这个就是已经在Designer中声明过的LINQ类 { .... //在这里不能再写构造器了,因为Designer.cs里边写过了 }这里不能调用其... 阅读全文
posted @ 2011-06-14 12:22 Java EE 阅读(113) 评论(0) 推荐(0)
摘要:这是微软MVC大会第二期的一个视频,本没有绝对链接,可从http://www.mvcconf.com/videos入口(这时候会播放第一个视频),按F3搜Performance,找到链接后点击,开始播放这个视频……虽然是英文的,但中间大部分时间在操作VisualStudio,还是很好理解的。大纲大致如下:00:00-怎样定义Web软件的性能。04:00-设置和测量性能基线,这段很重要,后面就可以看出其作用。其中展示了VS自带的性能测试工具。22:00-优化的大致流程28:00-OutPut Cathing,适合做很少改变的页面如首页37:00-Data Cathing,适合做比较多改变的数据的 阅读全文
posted @ 2011-06-05 19:07 Java EE 阅读(125) 评论(0) 推荐(0)
摘要:昨天遇到一段棘手的程序,尝试了各种方法,忽而在SubmitChanges的时候没反应(无错误,也不更新),忽而发生ChangeConflict,经过几个小时,终于大致理清了思路,也顺便把DataContext/UpdateModel/SubmitChanges给搞得更明白了一些,特此分享。先大致看看代码:xxController{ AgileRepository _repAgile = new AgileRepository(); //这里边是SubmitChanges/DateContext/Tables等属性,可取出下面提到的story SFCRepository _repSFC = n. 阅读全文
posted @ 2011-05-31 23:40 Java EE 阅读(212) 评论(0) 推荐(0)