數據校驗是兩方面的,客戶端校驗雖然可以大大減少服務器回調次數提升用戶體驗.但是客戶端校驗並 不是萬能的,從原理上說,客戶端返回的數據都是不可信任的,服務器端校驗必不可少.(關於客戶端校驗的 總結:從丑陋到優雅,讓代碼越變越美(客戶端檢測方法思考) )
總的來說,服務器端代碼也經歷了相似的幾個過程:
以判斷一個輸入是否是可以轉換成整數為例,開始大家都會續項強寫:
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("輸入為空");
}
看著就夠麻煩,然後大家都會總結經驗,將檢測寫成一個一個的函數:
protected bool IsInt(string str)
{
if (!string.IsNullOrEmpty(str))
{
int? intResult = 0;
if (int.TryParse(str, out intResult))
{
return true;
}
}
return false;
}
protected bool IsInRange(int max,int min,int input)
{
if (input > min && input < max)
return true;
else
return false;
}