|
數(shù)據(jù)校驗(yàn)是兩方面的,客戶端校驗(yàn)雖然可以大大減少服務(wù)器回調(diào)次數(shù)提升用戶體驗(yàn).但是客戶端校驗(yàn)并不是萬(wàn)能的,從原理上說(shuō),客戶端返回的數(shù)據(jù)都是不可信任的,服務(wù)器端校驗(yàn)必不可少。(關(guān)于客戶端校驗(yàn)的總結(jié):從丑陋到優(yōu)雅,讓代碼越變?cè)矫溃蛻舳藱z測(cè)方法思考) )
總的來(lái)說(shuō),服務(wù)器端代碼也經(jīng)歷了相似的幾個(gè)過(guò)程:
以判斷一個(gè)輸入是否是可以轉(zhuǎn)換成整數(shù)為例,開(kāi)始大家都會(huì)續(xù)項(xiàng)強(qiáng)寫(xiě):

string 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是因?yàn)槲覀冊(cè)诤笈_(tái)代碼中,往往需要根據(jù)檢測(cè)結(jié)果做其他業(yè)務(wù)方面的處理,如果你不需要返回信息,并不想單獨(dú)在外邊寫(xiě)ShowMessage函數(shù),可以在vInfo里面增加一個(gè)ShowMessage函數(shù),讓貧血的實(shí)體類不在貧血,實(shí)現(xiàn)像下面這樣看起來(lái)更優(yōu)雅的檢測(cè):

vInfo info = vHelper.StartVerify(10)
.IsNotNullOrEmpty("輸入為空")
.Min(0, "輸入小于0")
.Max(100, "輸入大于100")
.EndVerify()
.ShowMessage();
int類型檢測(cè)子類:

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技術(shù):從丑陋到優(yōu)雅,讓代碼越變?cè)矫览m(xù)集之服務(wù)器端數(shù)據(jù)校驗(yàn),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。