EasyFrame

经常使用的 ctl D + I 即时窗口
CSS :不可用 cursor: not-allowed;


删除小数点后多余的0
str = str.TrimEnd("0".ToCharArray());
str.TrimEnd(",");

/*JS验证输入整数**/
<input type="text" class="text hover" id="sellNum" verify="isNumb" msg="请输入整数" isnot="true" onkeyup="this.value=this.value.replace(/D/g,'')"
onafterpaste="this.value=this.value.replace(/D/g,'')" value="" />

int pageCount = (_recordCount + _pageSize - 1) / _pageSize; 快速计算页数

///验证交易密码
public void CheckTradePwd()
{
//先验证是否登录
if (Session["dt_users"] == null)
{
//跳转URL
HttpContext.Current.Response.Redirect(linkurl("login"));
return;
}
//再验证是否二级密码
if (HttpContext.Current.Session["Trade_Pwd"] == null)
{
Utils.WriteCookie(GTKeys.COOKIE_URL_REFERRER, HttpContext.Current.Request.Url.ToString()); //记住上一页面
//跳转URL
HttpContext.Current.Response.Redirect(linkurl("trandPwd"));
return;
}
}


表单提交弹出: error ;not found
解决办法: 检查返回值 和 返回值接收是否正确

表单提交URl 需注意两种提交方式的不同

<form url="{headUrl}find_password3.html" method="post" id="form1" class="form1">
<input type="hidden" name="action" value="VerWord" />


<form action="{headUrl}find_password3/VerWord.html" method="post" id="form1" class="form1">


<%#string.Format("{0:g}",Eval("add_time"))%>


扩展
decimal.TryParse("", out )
判断作为参数的字符串是否可以转换为decimal类型 返回类型为布尔类型


--------------------------------------------------------ASPX---------------------------------------------------

保留两位小数
Convert.ToDecimal(Eval("cardinal_money")).ToString("#0.00")

后台:datatype="/((^1d{10})(,1d{10})*$)+/" 验证手机号

判断Dataset 不为空
ds.Tables[0].Rows[0][0] != System.DBNull.Value

//获得详细玩法名,不要彩种名
public string GetDetail(string play_detail_code, string lottery_code)
{int i = lottery_code.Length;
return play_detail_code.Remove(0, i + 1);}



/// <summary>
/// 获取二维码图片(数据库为image类型的数据显示)
/// </summary>
public void getimage()
{
EasyFrame.Model.dt_sys_qr_code qr = this.Get_QR();
if (qr != null) {
byte[] b_logoImg = qr.qr_image;
System.IO.MemoryStream ms = new System.IO.MemoryStream(b_logoImg);
Response.Clear();
Response.ContentType = "image/gif";
Response.OutputStream.Write(b_logoImg, 0, b_logoImg.Length);
Response.End();
}
}

打开制定URL文件,将文件的内容读入一个字符串,然后关闭该文件
byte[] buff = System.IO.File.ReadAllBytes(Server.MapPath("~")+txtqr_image.Text);

---------------------------------C# winform---------------------------------------------
// 建立一张虚拟表
System.Data.DataTable table = new System.Data.DataTable();
table.Columns.Add("bank_id", typeof(int));//银行主键
table.Columns.Add("bank_name", typeof(string));//银行名称

EasyFrame.ORM.EntityList<dt_sys_bank_payee> pay_list = new BLL.sys_bank_payee().GetList(100," group_id = (select id from dt_bank_code where bank_code= 'CMBC')","");
for (int i = 0; i < pay_list.Count; i++)
{
System.Data.DataRow row= table.NewRow();
row[0] = pay_list[i].id;
row[1] = new EasyFrame.BLL.bank_code().GetModel(pay_list[i].bank_id).bank_name;
table.Rows.Add(row);
}

/********************************时间处理********************************/
public decimal Get_Account_money(int user_id, int i)
{
decimal account_money = 0;
//周返利活动投资流水
dt_user_week_activit_record model = dt_user_week_activit_record.Find("user_id=" + user_id + " and week_state = 0");
if (model != null)
{
DayOfWeek week = model.add_time.DayOfWeek;
int m_week = week == DayOfWeek.Sunday ? 7 : Convert.ToInt32(week);
int tianshu = (7 - Convert.ToInt32(m_week)) + (i * 7);//第7的天数
DateTime end = DateTime.Parse(string.Format("{0}-{1}-{2} 23:59:59", model.add_time.AddDays(tianshu).Year, model.add_time.AddDays(tianshu).Month, model.add_time.AddDays(tianshu).Day));
DateTime start = DateTime.Parse(string.Format("{0}-{1}-{2} 00:00:00", end.AddDays(-6).Year, end.AddDays(-6).Month, end.AddDays(-6).Day));
account_money= EasyFrame.BLL.Statistics_Own.Get_betting_money(user_id, start, end);
}
return account_money;
}

针对执行聚合函数查询的方法

EasyFrame.Model.dt_user_point.FindAll(string.Format("select MAX(get_point) as get_point from dt_user_point where user_id in ({0}) and sys_point_id={1}", id_list, k + 1))[0].get_point;
(取出实体集中第一个实体的X属性)

获取Config配置文件的指定字段
private string connectionString = System.Configuration.ConfigurationManager.AppSettings["connectionString"].ToString();


EasyFrame下获取siteConfig文件下的内容
string kefu = string.Empty;
try
{
kefu = new EasyFrame.BLL.siteconfig().loadConfig().customer;
}


时间的加减运算(只有类型都为datetime的数据才可以进行加减运算)
EasyFrame.Model.dt_user_bank_card _bank_card=new EasyFrame.BLL.user_bank_card().GetModel(bank_id);
TimeSpan span = DateTime.Now - _bank_card.add_time;
if (span.TotalHours < 1)
{
new EasyFrame.BLL.user_bank_card().GetModel(bank_id).Delete();//删除记录
res.Code = 1;
res.StrCode = "删除成功";
}


DropDownList 的数据源可以是数组

System.Diagnostics.Trace.Write(ex.Message); Debug调试程序时输出

<%#string.Format("{0:g}",Eval("add_time"))%> 格式化时间

---------------------------ASPX判断-------------------------------
<%if (Convert.ToInt32(Eval("state")) == 0)
{%>
<asp:LinkButton ID="LinkButton2" runat="server" CommandArgument='<%#Eval("record_code")%>' CommandName="open" OnClick="lnkChange_Click">修改</asp:LinkButton></td>
<%
}
else
{ %>
<%} %>
----------------------------------------------------------

----------------SQL分页------------------

1.top 方式
select top 10 * from dt_users where id not in (
select top ((1-1)*10) id from dt_users order by id
) order by id
2.row_number方式
select * from
(select *,ROW_NUMBER() over (order by id ) as 行号 from table) as t
where t.行号 between page*(num-1)+1 and page*num


select * from (
select *, ROW_NUMBER() OVER (ORDER BY use_money DESC) as rowNumber from dt_user_capital
) ORM_T1 where rowNumber between 1 and 10
----------------SQL分页------------------

数据类型拼接
EasyFrame.ORM.EntityList<dt_user_capital> list = new EasyFrame.BLL.user_capital().GetList(this.pageSize, this.page, "", _orderby, out this.totalCount);
List<dt_ssc_users> user_list = new List<dt_ssc_users>();
for (int i = 0; i < list.Count; i++)
{
user_list.Add(new EasyFrame.BLL.ssc_users().GetModel(list[i].user_id));
}
rpt_userList.DataSource = user_list;

7天内注册的用户数量
select COUNT(*) from dt_users where DateDiff(dd,reg_time,GETDATE())<7

数据库三范式
1NF:字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;


FOR循环读取
<%set int rowCount=Obj.Data.QQS.Length%>
<%if(rowCount>0)%>
<%for(int i=0;i<Obj.Data.QQS.Length;i++)%>
<%set string qqName=Obj.Data.QQS[i].qqName %>
<%set string qq=Obj.Data.QQS[i].qqNum %>
<%/for%>

/***********************
* function:日期转时间戳例如(2015-07-01 20:18:42转为1435753122)
* Author : ruiec_wzh
* Parameters: dateStr为(2015-07-01 20:18:42或2015-07-01格式看,注意是字符串)
* callBack:
*************************/
function ruiec_get_unix_time(dateStr)
{
var newstr = dateStr.replace(/-/g,'/');
var date = new Date(newstr);
var time_str = date.getTime().toString();
return time_str.substr(0, 10);
}
/***********************/

EasyFrame下开启事务
dt_lottery_orders.Meta.BeginTrans();
try
{
dt_lottery_orders.Meta.Commit();
}
catch (Exception ex)
{
dt_lottery_orders.Meta.Rollback();
}

EasyFrame下New一个Dialog对话框
function delItemTr(obj) {
top.dialog({
title: '提示',
content: '您确定要删除这个设置吗?',
okValue: '确定',
ok: function () {
$(obj).parent().parent().remove(); //删除节点
},
cancelValue: '取消',
cancel: function () { }
}).showModal();


<input type="text" name="number" />,这样的标签有好几个并且name是相同的值,怎样通过jquery取得值呢?
jQuery("input[name='number']").each(function(){
alert(jQuery(this).val());
});


//算出奖金除去小数点位后的位数(返点公式 基数*返点数*奖金位数/100)
int weishu = list_info[0].ToString().Split('.')[0].Length;
int jishu = Convert.ToInt32( "1".PadRight(weishu, '0'));

//转换成Json对象
string result_str = JsonMapper.ToJson(res);
context.Response.ContentType = "application/json";


如继承自UserPage
void UserPage_Init(object sender, EventArgs e)
{
if (!IsUserLogin())
{
ShowPage();
return;
}
else
{
ShowPage();
//获得登录用户信息
userModel = GetUserInfo();
}
}


UserPage页面加载调用方法
protected override void ShowPage()
{
this.Init += new EventHandler(UserPage_Init); //加入IInit事件
}
/// <summary>
/// OnInit事件,检查用户是否登录
/// </summary>
void UserPage_Init(object sender, EventArgs e)
{
if (!IsUserLogin())
{
//跳转URL
HttpContext.Current.Response.Redirect(linkurl("login"));
return;
}
//获得登录用户信息
userModel = GetUserInfo();
groupModel = new BLL.user_groups().GetModel(userModel.group_id);
if (groupModel == null)
{
groupModel = new Model.dt_user_groups();
}
InitPage();
}

/// <summary>
/// 构建一个虚方法,供子类重写
/// </summary>
protected virtual void InitPage()
{
//无任何代码
}

/// <summary>
/// 获取服务器主路径
/// </summary>
/// <returns></returns>
public string GetHeaderServerUrl()
{
return string.Format("http://{0}/", Request.Url.Authority);
}


<a href="javascript:history.back(-1);"> 返回上一页

数据转换成日期格式
<%datetostr({nls[add_time]},yyyy-MM-dd)%> 转换成固定日期格式
<%cutstring({topdr[add_time]},10)%> 直接截取10个字符串长度

使用ALTER增加字段
ALTER TABLE dt_rwdetail add rwstate int


//随机生成固定数字
int[] str = new int[] { 20, 30, 40, 50, 5, 10 };
Random r = new Random();
List<int> m = new List<int>(6);
for (int i = 0; i < str.Length; i++)
{
int j = r.Next(0, str.Length - 1);
int[] point = new int[6];
m.Add(str[j]);
}
return m;

bit 类型的数据怎么判断
<%if({dr[B_state]}=="0")%>
<td><span class="record_person">未通过</span></td>
<%else%>
<td><span class="record_person">通过</span></td>
<%/if%>


Orderby Groupby 分组排序SQL语句
select count(*) 数量 ,u.point, u.id, u.user_name from dt_Mission m,
dt_users u where m.id = u.id group by u.id , u.user_name ,u.point order by 数量 desc

表单提交两种类型的获取方式
如果你使用get方式进行提交的话,最好就使用Request.QueryString["xxx"]这样子来获取,如果你使用post方式来提交的话,
那就采用Request.Form来获取参数,当然如果你觉得这都麻烦,那就直接使用Request["xxx"]这样子的方式来获取提交的参数吧!
post类型传值 用GTRequest.GetFormString (表单一般使用POST提交)
get类型传值 用GTRequest.GetQueryInt (使用get提交会破坏URL的完整性)
获取表单内容必须通过表单内相应控件的name属性获取
例如
<input type='text' id='tb_user' name='user_name' />
获取 : Request['user_name']

//简单类型获取
<%set bool isSing = getSing()%>
<%if(isSing)%>
<a href="javascript:void(0)" class="Sign_btn bgc_greenH">
<i class="iconfont">&#xe64f;</i>签到</a>
<%/if%>

//进度条
<%set double percentage=getPercentage("Project",4,{dr.fields[Financing_Total]},{dr.fields[Financing_Already]})%>
<span class="jindu"><i class="fl pecents_value" value="{percentage}"></i></span>


//如果需要取得比较少的数据
<%=SumInvestor()%> 更快
<%set int SumInvestors=SumInvestor()%>
共<i class="c_blue">{SumInvestors}</i>名投资人

//获得当前登录用户信息
Exp1: dt_users userModel = new Web.UI.BasePage().GetUserInfo();
Exp2: (Session["dt_ssc_users"] as EasyFrame.Model.dt_ssc_users).id

//自定义跳转页面
context.Response.Write("{"status":1, "msg":"取消成功!","url":"u_xm_guangzhu.html?f.u_Id"}");

//SQL增加一列
ALTER TABLE dt_complain add c_content varchar(max);

select convert(char(10),GetDate(),120) 取得日期 不要时间


//递归找到左区最末端
public void GetRightId(int user_id)
{
var quese = new EasyFrame.BLL.users().GetModel(user_id);
if (quese != null)
{
if (quese.right_id != -1)
{
GetRightId(quese.right_id);
}
else
{
right_id = quese.id;
}
}
else
{
right_id = -1;
}
}


/*************************C#.Net winform***************************/
dGrid_DP.Rows.Clear(); //清除grivdview 数据
this.dGrid_Info.DataSource = null; //清除数据源
循环读取当前所有的TextBox 然后清空
foreach (Control ctr in this.Controls)
{
if (ctr is TextBox)
{
ctr.Text = "";
}
}

/// <summary>
/// 验证表单提交的数据 对攻击进行过滤
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public ResultObj GetIsFormText(string text)
{
ResultObj res = new ResultObj();

#region 防止XSS攻击
if (text.IndexOf("<") != -1)
{
res.Code = -1;
res.StrCode = "提交字符串包含 < 文本,防止XSS攻击";
return res;
}

if (text.IndexOf(">") != -1)
{
res.Code = -1;
res.StrCode = "提交字符串包含 > 文本,防止XSS攻击";
return res;
}
#endregion

#region 防止sql注入式攻击
string StrKeyWord = @"select|insert|delete|from|count(|drop table|update|truncate|asc(|mid(|char(|xp_cmdshell|exec master|netlocalgroup administrators|:|net user|""|or|and";
//过滤关键字符
string StrRegex = @"[-|;|,|/|(|)|[|]|}|{|%|@|*|!|']";
if (Regex.IsMatch(text, StrKeyWord, RegexOptions.IgnoreCase) || Regex.IsMatch(text, StrRegex))
{
res.Code = -1;
res.StrCode="提交的数据包含sql语句关键字";
return res;
}
#endregion

res.Code = 1;
res.StrCode = "验证表单数据成功";
return res;
}



递归函数
List<dt_users> list = new List<dt_users>();
bll_users.GetTeamMember(model.agent_id);
for (int i = 0; i < bll_users.user_list.Count; i++) {
list.Add(bll_users.user_list[i]);
}

public class top_user
{

public List<dt_users> user_list = new List<dt_users>();

public void GetTeamMember(int user_id)
{
string sql = string.Format("select * from dt_users where id={0}", user_id);
List<dt_users> list = EasyFrame.Model.dt_users.FindAll(sql);
for (int i = 0; i < list.Count; i++) {
user_list.Add(list[i]);
GetTeamMember(list[i].agent_id);
}
}
}

#region 根据 Agent 判断是否是智能手机
///<summary>
/// 根据 Agent 判断是否是智能手机
///</summary>
///<returns></returns>
public bool CheckAgent()
{
bool flag = false;

string agent = HttpContext.Current.Request.UserAgent;
string[] keywords = { "Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser" };

//排除 Windows 桌面系统
if (!agent.Contains("Windows NT") || (agent.Contains("Windows NT") && agent.Contains("compatible; MSIE 9.0;")))
{
//排除 苹果桌面系统
if (!agent.Contains("Windows NT") && !agent.Contains("Macintosh"))
{
foreach (string item in keywords)
{
if (agent.Contains(item))
{
flag = true;
break;
}
}
}
}

return flag;
}
#endregion




/// <summary>
/// 递归统计无限下级用户类
/// </summary>
public class Team
{

/// <summary>
/// 存储递归后的结果
/// </summary>
public List<EasyFrame.Model.dt_ssc_users> Teamlist = new List<EasyFrame.Model.dt_ssc_users>();

/// <summary>
/// 获取用户团队所有的成员(包含下级的下级) Teamlist作为该方法的结果
/// </summary>
/// <param name="userGuid">用户主键</param>
/// <returns></returns>
public void GetTeamMember(int user_id)
{
System.Data.SqlClient.SqlParameter par = new System.Data.SqlClient.SqlParameter();
par.SqlDbType = System.Data.SqlDbType.Int;
par.ParameterName = "@user_id";
par.Value = user_id;
System.Data.DataTable table = EasyFrame.Common.DbHelperSQL.RunProcedure("proc_Team", new System.Data.SqlClient.SqlParameter[] { par }, "dt_users").Tables[0];
Teamlist = EasyFrame.Model.dt_ssc_users.LoadData(table);

}
}


使用 :team.GetTeamMember(login_user_id);
team.Teamlist

/*************************************************JS 模块*******************************************************/
$(document).ready(function(){}); --页面加载函数

1.JS tab切换
$(".list_tag i").click(function(){ $(this).addClass("curr"); $(this).siblings().removeClass("curr") var num = $(this).index(".list_tag i"); $(this).parent(".list_tag").siblings(".tag_det").children(".tag_copy").eq(num).show(); $(this).parent(".list_tag").siblings(".tag_det").children(".tag_copy").eq(num).siblings(".tag_copy").hide(); })


2.弹出询问对话框
<Script Language='JavaScript'>
if ( window.confirm('" + strMsg + "'))
{ window.location.href='" + strUrl_Yes +"' }
else {window.location.href='" + strUrl_No + "' };
</script>


3.获得当前table选中行的id
var id = $(this).parents("tr").children("td:nth-child(1)").text();
alert(id);


4.键盘按键被松开时执行判断
<input type="text" class="ty_text w100" maxval="{pointVlue}" onkeyup="if(isNaN(value))execCommand('undo');if(this.value>{pointVlue}){this.value={pointVlue}}" onafterpaste="if(isNaN(value))execCommand('undo')" maxlength="5" />

5.循环读取表格数据
$(".ltable").find("tr").each(function () {
alert($(".ltable").find("tr").eq(1).text());
alert($(".ltable").find("tr").text());
});

6.头部引用FLASH文件
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="170px" height="100px" align="center">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="<%templateskin%>/images1/logo.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="<%templateskin%>/images1/logo.swf" wmode="Transparent" bgcolor="none" width="170px" height="100px" align="center" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" />
</object>


7.初始化表单验证
<script type="text/javascript" charset="utf-8" src="../../scripts/jquery/jquery-1.11.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="../../scripts/jquery/Validform_v5.3.2_min.js"></script>
<script type="text/javascript">
$(function () {
//
$("#form1").initValidform();
});
</script>

8.检测IE
if ('undefined' == typeof (document.body.style.maxHeight))
{
window.location.href = 'ie6update.html';
}

9. 后台使用JS实现带参数链接的隐藏与显示
$(function () {
$(".ltable tr").each(function () {
var lbl_Type = $(this).find(".lbl_Type").text();
var user_id = $(this).find(".lbl_user_id").text();
if (lbl_Type == "2") {
$(this).find(".a_href").attr("href", "lottery_user_stat.aspx?ID=" + user_id + "&Type=" + lbl_Type);
} else {
$(this).find(".a_href").hide();
}
})
});

10. JS实现增删改查
<script type="text/javascript">
$(function () {
//查询
$("#lbtnSearch").bind("click", function () {
var key = $("#txtKeywords").val();
if (key == "") {
alert("查询关键字不能为空,请输入编码或名称等关键字!")
return;
}
location.href = "/IBMS.Admin/Module/Index?key=" + encodeURIComponent(key);
});
//全选按钮
$("#btndraw").bind("click", function () {
if ($(this).attr("state") != "ck_all") {
$(this).attr("state", "ck_all");
$("input[type='checkbox'").each(function () {
$(this).prop("checked", true);
});
} else {
$(this).attr("state", "ck_no");
$("input[type='checkbox'").each(function () {
$(this).prop("checked", false);
});
}
});
//批量删除按钮
$("#btnDelete").bind("click", function () {
var arr = new Array();
$("input[type='checkbox'").each(function () {
if ($(this).is(":checked")) {
arr.push($(this).attr("value"));
}
});
CommonDelete(arr);
});
//单个删除按钮
$(".c_red").bind("click", function () {
var arr = $(this).parent().parent().find("input").eq(0).attr("value");
CommonDelete(arr);
});
//JS跳转
$(".c_blue").bind("click", function () {
var arr = $(this).parent().parent().find("input").eq(0).attr("value");
if (arr == "") return;
location.href = "/IBMS.Admin/Module/Edit?ID=" + arr;
});
//表单验证
if ($(".add_user").size() > 0) {
var _FormValidate = new $.rui_validate();
_FormValidate.initload();
_FormValidate.initForm({
FormObj: $(".add_user"),
FormIdName: 'add_user'
});
}
});

function CommonDelete(arr) {
if (arr.length <= 0) {
alert("请选中您要删除的记录!");
return;
}
if (!confirm("确定要删除吗,删除后将无法恢复?")) {
return;
}
$.post("/IBMS.Admin/Module/Delete", "IDS=" + arr, function (x) {
if (x.ret == "0000") {
alert("删除成功!");
location.href = location.href;
} else {
alert(x.msg);
}
});
}
</script>

11.重置alert事件
/********************
* function:重置alert事件
* Author : ruiec_wzh
* Parameters: ''
* callBack:调用了ruiec_wzh_alert()
*************************/
function ruiec_changeAlert() {
var _alert = window.alert;
MyAlert = function (text) {
ruiec_NewAlert(text)
};
MyAlert.noConflict = function () {
window.alert = _alert;
};
// expose API
window.alert = window.MyAlert = MyAlert;
}

/***********************
* function:重新定义alert弹出框
* Author : ruiec_wzh
* Parameters: text弹出内容,callback成功后返回
* callBack:
*************************/
function ruiec_NewAlert(text, callback) {
//先将之前的弹窗删除
var list = art.dialog.list;
for (var i in list) {
list[i].close();
};
if (!callback) {
callback = function () { };
}
art.dialog({
content: text,
ok: callback,
lock: true
});
};

12. 点击提示正在建设中
$(".nav_item>a").click(function () {
var _theHref = $(this).attr("href");
if (_theHref == "javascript:void(0);") {
alert("正在紧张建设中,请您稍后!");
}
})

13. JS中Math()函数的用法
1. Math.ceil()用作向上取整。Math.floor(5.1) 输出6
2. Math.floor()用作向下取整。Math.floor(5.1) 输出5
3. Math.round() 我们数学中常用到的四舍五入取整
4. Math.abs(x) 返回绝对值
5. Math.valueOf() 方法返回 Math 对象的原始值

14.JS寻找元素
parent上一级, children下一级, siblings同级

/***********************
* function:获取url参数值
* Author : ruiec_wzh
* Parameters: name为参数名字
* callBack:
*************************/
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}

/**** 页面初始化时接收action**/

string action = string.Empty;
if (Request["action"] != null)
{
action = Request["action"];
}
if (action != string.Empty)
{
switch (action)
{
case "getdate":
GetData();
break;
default:
break;
}
}

/**以json格式输出数据**/
private void GetData()
{
List<EasyFrame.Model.dt_article> list = new List<Model.dt_article>();
list = new BLL.article().GetList(100,"","");
Response.Clear();
Response.ContentType = "application/json";
string json = LitJson.JsonMapper.ToJson(list);
Response.Write(json);
try
{
Response.End();
}
catch (Exception ex)
{
System.Diagnostics.Trace.Write(ex.Message);
}
}

/**Js验证插件使用**/
<script type="text/javascript" src="js/jquery.ruiValidate.js"></script>
$(function () {
var _FormValidate = new $.rui_validate();
_FormValidate.initload();

_FormValidate.initForm({
FocusTip: true, //获取焦点则进行提示,显示输入规则( boolen )
BlurChange: true, //失去焦点再进行提示,显示输入规则( boolen )
ShowTip: "Bubble", //显示提示信息的类型:Bubble(气泡);IconText( 图标加文字 ) ; Text(仅是文字); Icon(正确或错误的图标); Highlights 聚焦高亮 ;
ShowTipDirection: "right", //提示信息的位置:right:右边,top:上面;bottom:下面;inside:输入框内;
FormObj: $("#form1"), //验证的表单容器
FormIdName: 'form1', //form的ID名称
ShowTipClass: "ts_msg", //显示提示信息的区域class
ShowTipStyle: "", //显示提示信息的class
SubBtn: 'sub_btn', //提交按钮的class
CallBack: 'ruivalidate_form_class' //回调函数
})
function ruivalidate_form_class(obj) {
var _this = $(".ruivalidate_form_class .sub_btn");
_sub(_this);
}

});

JS获取url参数

function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}

www.XXXXX.com/index.php?id=1&image=awesome.jpg
调用 getQueryVariable("id") 返回 1。
调用 getQueryVariable("image") 返回 "awesome.jpg"。


********ResultObj类****
/// <summary>
/// 返回结果数据类
/// </summary>
[System.Runtime.Serialization.DataContract]
public class ResultObj
{
/// <summary>
/// 结果代码
/// </summary>
[DataMember]
public int Code
{
get;
set;
}

/// <summary>
/// 代码说明
/// </summary>
[DataMember]
public string StrCode
{
get;
set;
}
}

/// <summary>
/// 带参数的返回结果数据类
/// </summary>
public class ResultObj<T> : ResultObj
{
/// <summary>
/// 返回参数
/// </summary>
[DataMember]
public T Data
{
get;
set;
}
}
********ResultObj类****


获取客户端IP地址
System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
System.Web.HttpContext.Current.Request.UserHostAddress;//客户端IP地址

X2表示十六进制格式(大写),域宽2位,不足的左边填0 输出16进制
sb.AppendFormat("{0:X2}", 10);

/*************************************************常见问题*******************************************************/

常见问题
Q: 页面提交数据不能提交到后台
A: 检查js文件是否引入成功

Q: 页面出现404
A: 检查模板URL配置

Q:提示类、接口成员声明的else 标记无效
A:检查前台<%if%><%else%>标记时候关闭


/*************************************************MVC*******************************************************/
String 转 Datetime
public DateTime ConvertStrToDateTime(string strTime)
{
IFormatProvider ifp = new CultureInfo("zh-CN", true);
var time = DateTime.ParseExact(strTime, "yyyyMMdd", ifp);
return time;
}


原文地址:https://www.cnblogs.com/opts/p/7461866.html