|
数据校验是两方面的,客户端校验虽然可以大大减少服务器回调次数提升用户体验.但是客户端校验并不是万能的,从原理上说,客户端返回的数据都是不可信任的,服务器端校验必不可少。(关于客户端校验的总结:从丑陋到优雅,让代码越变越美(客户端检测方法思考) )
总的来说,服务器端代码也经历了相似的几个过程:
以判断一个输入是否是可以转换成整数为例,开始大家都会续项强写:
Code1string str = txtTest.Text;
if (!string.IsNullOrEmpty(str))
{
int? intResult = 0;
if (int.TryParse(str, out intResult))
{
if(intResult>0 && intResult<100)
{
//success
}
else
{
ShowMessage("输入必须大于0小于100");
}
}
else
{
ShowMessage("不能格式化为Int类型");
}
}
else
{
ShowMessage("输入为空");
}
返回info是因为我们在后台代码中,往往需要根据检测结果做其他业务方面的处理,如果你不需要返回信息,并不想单独在外边写ShowMessage函数,可以在vInfo里面增加一个ShowMessage函数,让贫血的实体类不在贫血,实现像下面这样看起来更优雅的检测:
Code7
vInfo info = vHelper.StartVerify(10)
.IsNotNullOrEmpty("输入为空")
.Min(0, "输入小于0")
.Max(100, "输入大于100")
.EndVerify()
.ShowMessage();
int类型检测子类:
Code10
public class vInt:v
{
int? intT = null;
public vInt(int? T)
{
intT = T;
Status = true;
Message = string.Empty;
}
public vInt IsNotNullOrEmpty(string msg)
{
if (intT == null)
{
Status = false;
Message = msg;
}
return this;
}
public vInt Min(int min,string msg)
{
if (!Status)
return this;
if (intT < min)
{
Status = false;
Message = msg;
}
return this;
}
public vInt Max(int max,string msg)
{
if (!Status)
return this;
if (intT > max)
{
Status = false;
Message = msg;
}
return this;
}
}
NET技术:从丑陋到优雅,让代码越变越美续集之服务器端数据校验,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。