摘要: 1、在记事本中编写代码。 using System; namespace HelloWorld { public class Program { static void Main(string[] args) { Console.WriteLine("Hello,World"); ... 阅读全文
posted @ 2014-03-12 09:42 Darren Ji 阅读(1174) 评论(0) 推荐(0) 编辑
摘要: 1、在记事本中编写IL代码如下:.assembly HelloWorld{}.assembly extern mscorlib{}.method public static void Main(string[] args) { .entrypoint .maxstack 8 ldstr "Hello,World" call void [mscorlib]System.Console::WriteLine(string) call valuetype [mscorlib]System.ConsoleKeyInfo [mscorlib]System.Console::... 阅读全文
posted @ 2014-03-12 09:20 Darren Ji 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 分配在栈上、派生于System.ValueType的值类型:● 简单类型,比如int,uint,byte,sbyte,short,long,ulong,char,float,double,decmial,bool都属于值类型。简单类型对应BCL基类库的别名,比如byte对应System.Byte,short对应System.Int16等。● 结构和枚举属于值类型。 什么是BCL基类库:Base ... 阅读全文
posted @ 2014-03-12 06:15 Darren Ji 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 报错:该字符串未被识别为有效的DateTime □ 背景 前端的搜索条件中包含关于时间的字符串,由jquery ui的datepicker产生时间字符串。 服务端对时间做了一次转换:DateTime.Parse(Request["时间字段"].ToString())。 搜索的时候没有选择点击datapicker,从而报错,出错的点停在了DateTime.Parse(Request["... 阅读全文
posted @ 2014-03-11 20:42 Darren Ji 阅读(13179) 评论(0) 推荐(1) 编辑
摘要: 控制台代码 using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); ... 阅读全文
posted @ 2014-03-11 14:55 Darren Ji 阅读(770) 评论(0) 推荐(2) 编辑
摘要: 通过实现IRouteConstraint接口,实现对某个控制名进行限制。本篇把重点放在自定义约束,其余部分参考: MVC自定义路由01-为什么需要自定义路由 自定义约束前 using System.Web.Mvc; using System.Web.Routing; using MvcApplication2.Extension; namespace MvcA... 阅读全文
posted @ 2014-03-11 11:14 Darren Ji 阅读(1213) 评论(0) 推荐(0) 编辑
摘要: 本篇体验自定义路由以及了解为什么需要自定义路由。 准备 □ View Models using System.Collections.Generic;namespace MvcApplication2.Models{ //单位 public class Unit { public int ID { get; set; } public RentalP... 阅读全文
posted @ 2014-03-11 01:13 Darren Ji 阅读(1085) 评论(2) 推荐(2) 编辑
摘要: □ 背景 往数据库添加数据,前端验证通过的情况下,提交报错,程序停在了SaveChanges()这行,并报如上错误。 □ 分析 猜想是提交的领域模型不符合数据库要求,但不知道具体哪里出错。网上查资料,有人发现这是"某些字段为空"而引起的错误。每个人面对的场景不一样,打断点调试,发现有一个属性的长度超出了数据库的要求。 出错的语句: userInfo.LoginPwd = Encryp... 阅读全文
posted @ 2014-03-10 15:52 Darren Ji 阅读(1890) 评论(0) 推荐(0) 编辑
摘要: 本篇体验当在浏览器地址栏中输入网址后发生的事情。参考了韩星和Igor Ostrovsky的博文。一切从输入网址/域名开始: 1、浏览器查找域名对应的IP地址实际上是查找DNS(Domain Name System的缩写,存储域名和IP地址映射的分布式数据库)的过程。查找DNS缓存的顺序为:1、在浏览器中查找DNS缓存:不同的浏览器缓存DNS的时间是不一样的,一般在1-30分钟时间。比如FireFox的默认DNS缓存时间是1分钟。 2、在系统中查找DNS缓存。 3、在路由器中查找DNS缓存。 4、在ISP(网路提供商)的DNS缓存服务器中查找。 5、如果以上都没有,ISP的DN... 阅读全文
posted @ 2014-03-10 12:14 Darren Ji 阅读(971) 评论(0) 推荐(0) 编辑
摘要: 本篇体验使用$.ajax()加载部分视图。与加载部分视图相关的包括: RenderPartial和RenderAction区别 使用jquery加载部分视图01-使用$.get() □ HomeController public class HomeController : Controller { public ActionRes... 阅读全文
posted @ 2014-03-09 22:47 Darren Ji 阅读(703) 评论(0) 推荐(1) 编辑
摘要: 使用Html.RenderParital或Html.RenderAction可以在主视图中加载部分视图。 两种方法是有区别的,在"RenderPartial和RenderAction区别"中体验过。本篇体验使用jquery加载部分视图。 □ HomeControllerusing System.Web;using System.Web.Mvc;using _01.Models;namespace _01.Controllers{ public class HomeController : Controller { public ActionResult Index()... 阅读全文
posted @ 2014-03-09 21:29 Darren Ji 阅读(1203) 评论(0) 推荐(1) 编辑
摘要: 本篇体验使用"jQuery结合Html.BeginForm()"对复杂类型属性进行异步验证。与本篇相关的"兄弟篇"包括: MVC验证08-jQuery异步验证 MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证 MVC验证10-到底用哪种方式实现客户端服务端双重异步验证 准备工作 □ js方面:1、jquery的某个版本2、jquery.validate.js3、jqu... 阅读全文
posted @ 2014-03-07 17:45 Darren Ji 阅读(1005) 评论(0) 推荐(1) 编辑
摘要: 本篇将通过一个案例来体验使用MVC的Ajax.BeginForm或jQuery来实现异步提交,并在客户端和服务端双双获得验证。希望能梳理、归纳出一个MVC异步验证的通用解决思路。本篇主要涉及:1、通过Ajax.BeginForm()方式,返回部分视图显示验证信息。2、通过jQuery+Html.BeginForm()方式,返回部分视图显示验证信息。3、通过jquery,返回json字符串,json字符串中包含部分视图及验证信息。此外,如下2篇是本文的"兄弟篇",只不过没有像本篇这样把多种实现方式放在一个案例中实现。MVC验证08-jQuery异步验证:通过jquery,返回 阅读全文
posted @ 2014-03-07 02:27 Darren Ji 阅读(1026) 评论(0) 推荐(2) 编辑
摘要: MVC内置的视图引擎有WebForm view engine和Razor view engine,当然也可以自定义视图引擎ViewEngine。本文想针对某个Model,自定义该Model的专属视图。□ 思路1、控制器方法返回ActionResult是一个抽象类 2、ActionResult的其中一个子类ViewResult,正是她使用IView实例最终渲染出视图 3、需要自定义IView 4、IViewEngine管理着IView,同时也需要自定义IViewEngine 5、自定义IViewEngine是需要全局注册的□ IView接口public interface IV... 阅读全文
posted @ 2014-03-06 12:33 Darren Ji 阅读(1397) 评论(0) 推荐(1) 编辑
摘要: MVC中,关于往后台提交的方法有: 1、Html.BeginForm():同步 2、Ajax.BeginForm():异步 3、js或jQuery提交后台 本文体验Ajax.BeginForm()方法。 View model using System; using System.ComponentModel.DataAnnotations; name... 阅读全文
posted @ 2014-03-05 18:07 Darren Ji 阅读(2581) 评论(6) 推荐(3) 编辑
摘要: 本文主要体验通过jQuery异步验证。在很多的教材和案例中,MVC验证都是通过提交表单进行的。通过提交表单,可以很容易获得验证出错信息。因为,无论是客户端验证还是服务端验证,总能找到与Model属性或验证特性对应的html元素和属性,并把错误信息显示出来。可是,在实际项目中,经常会遇到需要异步提交的情况。那么,如何把服务端的验证错误信息传递给前端视图呢?□ 思路1、服务端的验证错误信息是可以收集起来的以json形式传递个视图的。2、服务端把错误信息存放在一个字典集合Dictionary,让key是属性名,value是错误信息。3、前台视图中,显示错误信息的元素id,比方说是Err_Name,当 阅读全文
posted @ 2014-03-05 02:16 Darren Ji 阅读(1182) 评论(3) 推荐(2) 编辑
摘要: 在一般的自定义验证特性中,我们通过继承ValidationAttribute,实现IClientValidatable,只能完成对某个属性的自定义验证。使用IValidatableObject可以完成Model级别的验证。 □ 实现IValidatableObject接口的Model public class RegisterModel : IValidatableObject{ publi... 阅读全文
posted @ 2014-03-04 23:14 Darren Ji 阅读(933) 评论(0) 推荐(2) 编辑
摘要: 本文体验自定义错误信息。 系统默认的错误信息 在"MVC验证02-自定义验证规则、邮件验证"中,我们自定义了一个验证Email的类。如果输入邮件格式错误,出现系统默认的报错信息。 效果: 通过ErrorMessage来修改错误信息 [Email(ErrorMessage = "Email格式错误")] [Display(Name ... 阅读全文
posted @ 2014-03-04 22:25 Darren Ji 阅读(1486) 评论(0) 推荐(2) 编辑
摘要: 本文体验2个属性值不等。即当一个属性输入值,另外一个属性输入的值不能和第一个属性值相等。相关文章包括: MVC验证01-基础、远程验证 MVC验证02-自定义验证规则、邮件验证 MVC验证03-自定义验证规则、禁止输入某些值 MVC验证04-自定义验证规则、日期范围验证 自定义验证特性,继承ValidationAttribute并实现IClientValidatable 这次重写了基类的Is... 阅读全文
posted @ 2014-03-04 18:31 Darren Ji 阅读(1242) 评论(0) 推荐(1) 编辑
摘要: 本文体验范围验证。与本文相关的包括: MVC验证01-基础、远程验证 MVC验证02-自定义验证规则、邮件验证 MVC验证03-自定义验证规则、禁止输入某些值 当需要对字符串长度进行验证,可以用StringLength:[StringLength(100, ErrorMessage = "{0} 必须至少包含 {2} 个字符。", MinimumLength = 6)] 当需要对数组范围进行验... 阅读全文
posted @ 2014-03-04 17:22 Darren Ji 阅读(2386) 评论(0) 推荐(1) 编辑
摘要: 本文继续体验自定义验证规则,需求是禁止输入某些值。本文与前2篇相关,请参考:MVC验证01-基础、远程验证 MVC验证02-自定义验证规则、邮件验证 自定义验证特性继承ValidationAttribute,并实现IClientValidatable接口 展开using System.ComponentModel.DataAnnotations;using System.Web.Mvc;na... 阅读全文
posted @ 2014-03-04 13:57 Darren Ji 阅读(1325) 评论(0) 推荐(2) 编辑
摘要: 本文体验MVC自定义验证特性,来实现对邮件的验证。对于刚写完的自定义验证特性,起初只能支持后端验证。如果要让前端jquery支持,还必须对jquery的验证进行扩展。本文与"MVC验证01-基础、远程验证"相关,如有需要,请参考。当我们验证有关Email属性的时候,我们可能这样写:[RegularExpression(@"\w.+\@\w.+")]public string Email { get; set; }这仅仅考虑了@符号,但这还不够,我们又可能这样写:[RegularExpression(@"^[\w-]+(\.[\w-]+)*@([ 阅读全文
posted @ 2014-03-03 23:33 Darren Ji 阅读(2693) 评论(0) 推荐(1) 编辑
摘要: 本文体验MVC服务端和客户端验证。主要涉及:※ 基础验证※ 远程验证1个或多个属性及注意点 基础体验 创建MVC4的Internet项目,本身包含了基本的Model,Views,Controller. □ Model打上验证特性 展开 public class RegisterModel { [Required] [StringLength(3, Mini... 阅读全文
posted @ 2014-03-03 12:30 Darren Ji 阅读(2247) 评论(9) 推荐(2) 编辑
摘要: 本文体验datagrid单元格的格式化和样式化。 datagrid显示的DOM结构 文字 field属性对应字段. div中的内容对应单元格内容。 formatter的用法 field: 'UserStatus', title: '状态', formatter: function (value, row, index) {... 阅读全文
posted @ 2014-03-03 10:15 Darren Ji 阅读(1402) 评论(0) 推荐(0) 编辑
摘要: 出现错误的原因是:静态文件不能通过post方式访问。 解决办法:改成用get方式访问。 阅读全文
posted @ 2014-03-03 09:09 Darren Ji 阅读(754) 评论(0) 推荐(0) 编辑
摘要: □ 背景分析 在控制器方法中的一个参数允许为null值:public ActionResult GetByCategory(int? categoryId = null) 当把这里的categoryId传给服务类方法时 var products = service.LoadProductsByCategory((categoryId),报错。 □ 解决方法 这里的categoryId默认... 阅读全文
posted @ 2014-03-03 01:46 Darren Ji 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: 本文体验与勾选有关的特性。 需要加载的books.json 展开{ "total": 4, "rows": [ { "productid": "FI-SW-01", "productname": "Koi", "unitcost": 10.00, "status": "P", "listprice": 36.50, "attr... 阅读全文
posted @ 2014-03-02 22:30 Darren Ji 阅读(956) 评论(0) 推荐(2) 编辑
摘要: 本文体验datagrid的排序。 □ 思路 当点击datagrid的标题,视图传递给Controller的Form Data类似这样:page=1&rows=10&sort=CustomerID&order=asc。为了应对变化,把关于分页的封装成基类,其他关于排序或搜索的封装成继承该基类的子类。再把这些子类对象实例传递给服务层方法。 相关Model 展开 //显示表相关 publ... 阅读全文
posted @ 2014-03-02 15:28 Darren Ji 阅读(560) 评论(0) 推荐(1) 编辑
摘要: 本文主要通过一个子datagrid来实现主次表。谢谢Kevin的博文。 代码部分与http://www.cnblogs.com/darrenji/p/3576258.html相似,这里只列出不一样的地方。 最终效果: ProductController 让子表Product返回json字符串 public ActionResult GetJsonByCategory(int?... 阅读全文
posted @ 2014-03-02 09:19 Darren Ji 阅读(779) 评论(0) 推荐(1) 编辑
摘要: 本文主要体验用jQuery Easyui的datagrid来实现Master-Detail主次表。谢谢Kevin的博文,助我打开了思路。 主表显示所有的Category,当点击主表的展开按钮,显示该Category下的所有Product。 涉及显示的2个Model 展开namespace DataGridInMVC2.Models{ public class Category {... 阅读全文
posted @ 2014-03-02 01:26 Darren Ji 阅读(1527) 评论(0) 推荐(2) 编辑
摘要: 本文主要体验datagrid的frozenColumns属性。□ frozenColumns效果: 在frozenColumns的列将保持不动,而其他列横向滚动。 □ frozenColumns效果实现的前提: 1、给所有的列表上宽度,比如width:80 2、frozenColumns中的列必须是从左侧开始,并且是连续的 3、必须把datagrid的fitColumns属性设置为false $('#tt').datagrid({ url: 'Home/GetData', wid... 阅读全文
posted @ 2014-02-28 23:48 Darren Ji 阅读(803) 评论(0) 推荐(0) 编辑
摘要: 本文主要来体验在搜索区域增加更多的搜索条件,主要包括:※ 使用jQuery ui的datepicker显示时间,设置显示格式、样式。 ※ 设置jQuery ui的onClose事件,使开始和结束时间形成约束,即选择开始时间为某天,结束时间的选择范围只能在该天以后,反之亦然。 ※ 下拉框显示枚举值本文只关注视图显示,不涉及后台逻辑。关于搜索条件的过滤,请参照"datagrid在MVC中的运用02"。 关于显示时间□ Html 时间从: 到: 搜索 □ js部分 ... 阅读全文
posted @ 2014-02-28 17:44 Darren Ji 阅读(1122) 评论(0) 推荐(1) 编辑
摘要: 本文介绍在datagrid上同时添加搜索和操作区域。 仅仅是增加操作区域□ 方法1$('#dg').datagrid({ toolbar: '#tb' }); □ 方法2$('#dg').datagrid({ toolbar: [{ iconCls: 'icon-edit', handler: function(){alert('edit')} },'-',{ iconCls: 'icon-help', handler: function(){alert('help' 阅读全文
posted @ 2014-02-28 15:43 Darren Ji 阅读(746) 评论(0) 推荐(0) 编辑
摘要: 本文体验datagrid显示单行或多行内容。分别用到了datagrid的getSelected,getSelections方法。 Html部分 GetSelected GetSelections 选择单行 //获取单行内容 function getSelected() { //获取选中的行 var row = $('#tt').datagrid('getSelected'); if (row) { $.messager.alert("单行结果", 'ItemId:' + row.ItemId + '\nPrice:&# 阅读全文
posted @ 2014-02-28 13:38 Darren Ji 阅读(743) 评论(0) 推荐(0) 编辑
摘要: 本文接着上一篇,来体验给datagrid加上搜索功能。主要涉及到:※ 把一个div与datagrid相关起来 ※ datagrid接收查询参数 ※ 查询参数的封装效果图: 查询参数封装分页相关的是每个页面都能用到的,所以把分页相关的封装成基类。 与查询相关的,封装成继承基类的子类。 public class PageParam { public int PageSize { get; set; } public int PageIndex { get; set; } } public class BookParam : PagePa... 阅读全文
posted @ 2014-02-28 13:04 Darren Ji 阅读(904) 评论(0) 推荐(1) 编辑
摘要: 本文体验jQuery EasyUI的datagrid在MVC中的应用。主要涉及到:※ datagrid的基本属性和方法 ※ datagrid分页在前后台的实现最终效果: 与视图显示对应的view model public class Book { public string ItemId { get; set; } public string ProductId { get; set; } public decimal ListPrice { get; set; } public decimal UnitCost { ... 阅读全文
posted @ 2014-02-28 01:47 Darren Ji 阅读(1003) 评论(2) 推荐(2) 编辑
摘要: 用了2个jquery的2个文件: □ 思考浏览页面,打开开发者工具,发现是在jquery.unobtrusive-ajax.min.js中报错了。 而在以前jquery-1.5.1.min.js和jquery.unobtrusive-ajax.min.js是不会报错的。 估计是jquery版本升级后,在新的版本中已经没有'live'方法。□ 解决方法使用jQuery M... 阅读全文
posted @ 2014-02-27 17:15 Darren Ji 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 配置、单元测试、AOP注入Decimal转换成String类型源数组转换成目标数组 源中的集合(数组)属性转换成目标中的集合(数组)属性子类父类间的映射 源字典集合转换成目标字典集合枚举映射自定义解析器 源中的复杂属性和Get...方法转换成目标属性类型转换,源string类型分别转换成int, DateTime,Type源和目标都包含复杂类型属性把源中的一个属性映射到目标中的多个属性动态实现接口方法或属性目标中的属性如果比源多,可以忽略多出的属性目标有virtual属性,可忽略目标属性值为null的解决办法int转stringbool转stringDateTime转String判断条件当源和 阅读全文
posted @ 2014-02-27 10:34 Darren Ji 阅读(560) 评论(0) 推荐(0) 编辑
摘要: □ 背景UserInfoVm是在MVC的Models文件夹中的一个view model,这个view model是某部分视图的的页面Model。当加载这个部分视图的时候报了错。□ 思考UserInfoVm明明是在命名空间“XXX”中的。网上有说可能是引用程序集的目标框架版本问题,这里是命名空间里的一个类,不存在框架版本问题。在发生问题之前,做了一个动作:把MVC的网站的生成输出路径由默认的bin放到了一个Library文件夹了。□ 解决方法把MVC的网站的生成输出路径设置成默认的bin文件夹,即设置成"\bin",问题解决。 阅读全文
posted @ 2014-02-27 10:20 Darren Ji 阅读(2021) 评论(0) 推荐(0) 编辑
摘要: 本篇参考了 Shailendra Chauhan和 Jag Reehal的博文。 RenderParital和RenderAction的共同点: ※ 都能返回部分视图 ※ 返回的部分视图和主视图共用一个TextWriter对象把内容写到Http Response中 什么时候使用Html.RenderPartial 当部分视图中的数据是主视图的一部分,即部分视图的Model是主视图Model的一个集合类型属性的时候,倾向于用Html.RenderPartial。 就像如下为了展示主视图view model的一个集合类型属性IEnume... 阅读全文
posted @ 2014-02-26 23:59 Darren Ji 阅读(1233) 评论(0) 推荐(0) 编辑

我的公众号:新语新世界,欢迎关注。