anything
Jquery - checkbox 状态检测和变换
状态监测
1. .attr('checked'); //1.6版本以上返回 checked 或 undefined 1.5版本返回 true, false
2. . prop('checked') //1.6以上版本返回 ture 或 false
3. .is(':checked') //所有版本 返回true 或 false
状态改变
1. attr('checked','checked');
2. attr('checked',true);
3. prop('checked',true); //1.6版本以上
4. prop({checked:true}); //1.6版本以上
5. prop('checked',function(){return true}); //1.6版本以上
6. prop('checked','checked'); //1.6版本以上
JQuery - 匿名定义
匿名类型 var dat = { ID : 0 };
匿名数组 var arr= new Array(); arr.push(dat);
C# - 匿名定义
匿名类型 var dat = new { ID : 0 };
匿名数组 var arr = new[] { new { ID : 0 } };
C# - JSon 转 匿名对象
string str = [{"ID":2235},{"ID":2239}]; // Json数据
var anonymous = new { ID : 0 }; // 创建匿名类
var data = JSonConvert.JsonConvert.DeserializeAnonymousType(rows, anonymous); // 转换
EntityFramework - CodeFirst Model 字段属性
// 指定数据类型
[DataType(DataType.Date)]
// 指定数据显示格式
// DataFormatString 显示格式 ApplyFormatInEditMode 是否在编辑时也使用该格式
[DisplayFormat(DataFormatString="{0:yyyy-MM-dd}", ApplyFormatInEditMode=true)]
[DisplayFormat{NullDisplayText = "No grade")]
// 指定列属性 (在数据库里的属性)
[Column(TypeName = "money")]
// 指定列名 (视图中显示的列名)
[Display(Name = "Administrator")]
// 串联属性
// 只有Get访问器, 不在数据中生成列
public string FirstName { get; set; } public string LastName { get; set; } public string FullName { get { return LastName + ", " + FirstName ; } }
EntityFramework -CodeFirst 联级删除禁止
// 在上下文类中加入
protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>(); }
JQuery - form 转 Json
1. $("form").serialize()
2. $("form").serializeArray()
将页面表单序列化成一个Json结构对象
3. $("form").param()
把Json格式的数据序列化成字符串形式
4. 重写serialize方法,然后$("form").serializeObject()
$.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; };
EasyUI - 前端后台对应关系
从 DataGrid 到 Form
DataGrid - "field:ID" -> Form - name = "ID"
从 Form 到后台
Form - name = "ID" -> 后台 Request.Form["ID"], Request["ID"]
EntityFramework - CodeFirst 联级删除
对特定类使用联级删除
在Context类的构造函数中
modelBuilder.Entity<Student>() .HasRequired(p => p.Teacher) .WithMany(d => d.Students) .HasForeignKey(t => t.Teacher_ID) .WillCascadeOnDelete(true);
class Student { public int ID {get;set;} public string Name {get;set;} public int Teacher_ID {get;set;} [ForeignKey("Teacher_ID")] public Teacher Teacher {get;set;} } class Teacher { public int ID {get;set;} public string Name {get;set;} public ICollection<Student> Students {get;set;} }
EntityFramework - CodeFirst Json 序列化复合类引起引用循环的解决方案
在引起循环的类中添加
[JsonIgnore] 特性
JQuery - 只执行一次的代码
jquery.one(function(){
});
在MVC的 iframe 中, 先执行base中的 $(function(){})
再执行 具体页面中的 $(function(){})
C# - delegate,Fun,Action
bool fun1() { return true; }
delegate bool fun(); fun = fun1;
fun<bool> fun = fun1;
Action<bool> fun = fun1;
C# - IEnumerable, IQueryable, ICollection, IList
EntityFramework - 删除更新对象的时候引发同一键对象错误
using (myContext context = new myContext()) { context.Set<T>().Attach(t); context.Entry(t).State = EntityState.Modified; context.SaveChanges(); }
C# - 二元操作符 ??
??是一个二元运算符,如果左操作数非空,则返回左操作数,否则返回右操作数,所以,在一些特定的场合可以用它来代替?:运算符,简化代码书写。
var data = anything;
var result = data ?? anything2;
C# - SQL ConnectionString
SQL Server 验证
Data Source=(local);Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=mzwu@com;MultipleActiveResultSets=True
Windows 验证
Data Source=(local);Initial Catalog=test;Integrated Security=True;MultipleActiveResultSets=True
SQL - 循环语句
declare @i int set @i=1 while @i<30 begin insert into MyTable values(@i) set @i=@i+1 end
SQL - int 转 varchar
cast(@i as varchar(1))
JQuery - alert, confirm, prompt
1.alert 弹出警告框,仅包含文本和确认按钮
2.confirm 弹出确认框, 里面包含文本和确认取消按钮, 方法返回布尔值代表选择确认还是取消
3.prompt 弹出输入框, 包含一个文本输入框和确认,取消按钮,点击取消返回null
function show_alert(){ alert('第一行\n第二行'); } function show_confirm(){ var result = confirm('是否删除!'); if(result){ alert('删除成功!'); }else{ alert('不删除!'); } } function show_prompt(){ var value = prompt('输入你的名字:', '默认名字'); if(value == null){ alert('你取消了输入!'); }else if(value == ''){ alert('姓名输入为空,请重新输入!'); show_prompt(); }else{ alert('你好,'+value); } }
JQuery - 取name元素
$("input[name='thename']").val();
MVC - 文件下载
前端
<input type="button" value="下载" style="width:25px; height:15px;" onclick="下载('#:ID#')" />
<script>
function 下载(data) { // location 可以是指向一个返回File()的地址,也可以是服务器文件的相对路径
location.href = "/附件/下载?附件ID=" + data;
}
</script>
后台
public ActionResult 下载(Int32 附件ID)
{
var 附件 = db.附件.Find(附件ID);
var filePath = 附件.路径;
var fileName = 附件.原文件名;
string absoluFilePath = filePath;
return File(new FileStream(absoluFilePath, FileMode.Open), "application/octet-stream", Server.UrlEncode(fileName));
}
Json 和 Jsonp
web 页面的交互需要传递数据, 一般通过ajax来实现.
这就需要一种固定的数据格式来传输数据,并且有时需要解决跨域时安全协议的问题
这里传输数据的格式,一般就采用json,另外还有text,xml,html等
这里的安全协议,跨域协议可以用jsonp来
所以:json是一种数据交换的格式,jsonp是一种认为开发的用于跨域的交互协议
JSON
特点:
1. 基于纯文本,跨平台传送简单
2. 无论前段后台,大多数语言都支持
3. 轻量级数据格式,适合互联网传送
4. 可读性强
5. 容易编写和解析, 可以参考某些框架解析方法
规则
1. 符号:
大括号{} 用来表示属性集
方括号[] 用来表示对象集
冒号: 用来区分键值对和值, 键名最好需要双引号
逗号, 用来区分多个属性
双引号""
2. 数据类型:
字符串,数字,布尔,日期,null
JSONP
MVC - BaseController 设计原则
Base | Child | Result |
protected & private | protected & private | 无法定向到任何一个Controller |
protected & private | public | 正常 (子类隐藏了父类的Controller) |
protected & private | public + new | 正常 |
protected & private | public + override | 编译错误:无法进行重写 |
protected & private + virtual | protected & private | |
protected & private + virtual | public | 正常(子类隐藏了父类的Controller) |
protected & private + virtual | public + new | 正常 |
protected & private + virtual | public + override | 编译错误:无法更改父类修饰符 |
protected & private + virtual | 无法定向到任何一个Controller | |
public | protected & private | 以子类的身份直接执行Base.Controller |
public | public | 引发歧义错误,无法确定是子类还是父类的Controller |
public | public + new | 引发歧义错误,无法确定是子类还是父类的Controller |
public | public + override | 编译错误:无法进行重写 |
public | 以子类的身份直接执行Base.Controller | |
public + vitrual | protected & private | 以子类的身份直接执行Base.Controller |
public + vitrual | public | 引发歧义错误,无法确定是子类还是父类的Controller |
public + virtual | public + new | 引发歧义错误,无法确定是子类还是父类的Controller |
public + virtual | public + override | 正常 |
public + virtual | 以子类的身份直接执行Base.Controller |
1. 子类的方法(控制器)只能使用 public 修饰符
2. 父类最好使用 virtual
3. 如果不打算写子类Controller的话 父类只能用 public 修饰符
4. 父类逻辑跟所有子类一模一样的,父类可以使用 public + virtual 的写法, 子类不写控制器 (通常用于视图)
5. 父类与子类的逻辑不同的话, 使用protected + virtual 的写法, 子类使用 public 或者 public + new 覆盖
6. 为了避免子类调用父类存在且它自身不存在的方法, 建议父类全部都写 protected + virtual 方法, 子类实现所有它自身需要实现的方法
7.父类还可以在Controller名前面加个'_' 符号, 表示与子类的Controller 区分
EntityFramework - Form 传递数组
<form> <table> @for (var i = 0; i < Model.Entities.Count; i ++ ) { <input type="text" name="Entities[@i].Name" /> } </table> </form>
JQuery - String to Json
var str = '{"name":"John"}'; var obj = jQuery.parseJSON(str); alert( obj.name ); // "John"
Enum Convert
1、Enum-->String
(1)利用Object.ToString()方法:如Colors.Green.ToString()的值是"Green"字符串; (2)利用Enum的静态方法GetName与GetNames: public static string GetName(Type enumType,Object value) public static string[] GetNames(Type enumType) 例如:Enum.GetName(typeof(Colors),3))与Enum.GetName(typeof(Colors), Colors.Blue))的值都是"Blue" Enum.GetNames(typeof(Colors))将返回枚举字符串数组。
2、String-->Enum
(1)利用Enum的静态方法Parse: public static Object Parse(Type enumType,string value) 例如:(Colors)Enum.Parse(typeof(Colors), "Red")
3、Enum-->Int
(1)因为枚举的基类型是除 Char 外的整型,所以可以进行强制转换。 例如:(int)Colors.Red, (byte)Colors.Green
4、Int-->Enum
(1)可以强制转换将整型转换成枚举类型。 例如:Colors color = (Colors)2 ,那么color即为Colors.Blue (2)利用Enum的静态方法ToObject。 public static Object ToObject(Type enumType,int value) 例如:Colors color = (Colors)Enum.ToObject(typeof(Colors), 2),那么color即为Colors.Blue
5、判断某个整型是否定义在枚举中的方法:Enum.IsDefined
public static bool IsDefined(Type enumType,Object value) 例如:Enum.IsDefined(typeof(Colors), n))
CSS 内容超过div宽度限制 自动换行
<div style='width: 100px;display:block;word-break: break-all;word-wrap: break-word;'> 内容超出div宽度后自动换行的css代码 </div>
.NET - Window 服务安装
InstallUtil.exe path
sc create ServerName binPath= "path"
(sc 工具比较强大, 推荐使用)
.NET - Window 服务删除
sc delete ServicesName
.NET - Window 服务打开
net start callcenter
.NET - Window 服务关闭
net stop CallCenter
JavaScript - 获取地址栏查询字符串
function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }
.NET MVC 下的协变和抗变
public class A{ public int a{get;set;} } public class B : A{ public int b {get;set;} }
// 正常运作 // a1 实际上也是 B 类型 B b1 = new B(); A a1 = b1; B b2 = (B)a1
// 正常运作 // 参数 a1 实际上是 B 类型 B b1 = new B(); B b2 = Convert(b1); public B Convert(A a1) { return (B)a1; }
<form action="Convert"> <input type="text" name="a" /> <input type="text" name="b" /> <input type="submit" value="submit" /> </form>
// 失败 // 原因可能是因为在模型绑定的时候, 直接就按照 A 的绑定方式绑定 // 所以 a1 并不是 B类型 而是A类型 [HttpPost] public EmptyResult(A a1) { B b1 = (B)a1; }
SQL - 利用存储过程清空所有表里的数据
CREATE PROCEDURE sp_DeleteAllData AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL' EXEC sp_MSForEachTable 'DELETE FROM ?' EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL' EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL' EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?' GO
HTML - IconFont 的使用
1. 获得 这个 iconfont 的 .eot, .svg, .ttf, .woff 文件 (不必须所有文件都需要)
2. 创建一个 css 文件 (如: iconfont.css)
3. 创建对于 字体文件的关联
/*字体图标引用*/ @font-face { font-family: "iconfont"; src: url('../fonts/iconfont.eot?t=1458959919'); /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ /* chrome, firefox */ /* IE6-IE8 */ /* IE9*/ src: url('../fonts/iconfont.eot?t=1458959919#iefix') format('embedded-opentype'), url('../fonts/iconfont.woff?t=1458959919') format('woff'), url('../fonts/iconfont.ttf?t=1458959919') format('truetype'), url('../fonts/iconfont.svg?t=1458959919#iconfont') format('svg');/* iOS 4.1- */ } .iconfont { font-family: "iconfont" !important; font-size: 20px; font-style: normal; -webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0.2px; -moz-osx-font-smoothing: grayscale; } .icon-more:before { content: "\e603"; } .icon-yonghu:before { content: "\e600"; } .icon-zhuye:before { content: "\e601"; } .icon-qian:before { content: "\e602"; }
4. 在 HTML 页上引用这个 css
<link rel="stylesheet" href="css/iconfont.css" />
5. 给想要的标签上 添加 class 属性
<span class="iconfont icon-yonghu"></span>