|
數據校驗是兩方面的,客戶端校驗雖然可以大大減少服務器回調次數提升用戶體驗.但是客戶端校驗并不是萬能的,從原理上說,客戶端返回的數據都是不可信任的,服務器端校驗必不可少。(關于客戶端校驗的總結:從丑陋到優雅,讓代碼越變越美(客戶端檢測方法思考) )
總的來說,服務器端代碼也經歷了相似的幾個過程:
以判斷一個輸入是否是可以轉換成整數為例,開始大家都會續項強寫:

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是因為我們在后臺代碼中,往往需要根據檢測結果做其他業務方面的處理,如果你不需要返回信息,并不想單獨在外邊寫ShowMessage函數,可以在vInfo里面增加一個ShowMessage函數,讓貧血的實體類不在貧血,實現像下面這樣看起來更優雅的檢測:

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

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技術:從丑陋到優雅,讓代碼越變越美續集之服務器端數據校驗,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。