2011-04-26 127 views
0

查詢字符串我用C#Asp.Net和EF 4.使用實體框架

檢查有效性我有一個母版和DetailsPage的場景。

因此,從我的母版頁,我將一個變量作爲QeryString傳遞給DetailsPage,DetailsPage將顯示我的DataBase中特定項目的詳細信息。

我需要檢查的有效性爲我查詢字符串,在細節我需要:

  • 檢查是否爲null,空或空格。
  • 檢查是否不是INT類型(只是數字不是任何字母)。
  • 檢查對象是否存在於我的數據庫中。

如果檢查結果爲真,我將重定向用戶。

此刻我寫了這個腳本。這是工程,但我想知道如果你知道更好的接近/代碼來解決這個

另外我想知道是否有意義,每次頁面加載時都有這個邏輯,或者僅僅是我們就足夠了!Page.IsPostBack。

再次感謝您的支持!

protected void Page_Load(object sender, EventArgs e) 
    { 
     #region Logic Check Query String. 

     // Query String is Null or Empty. 
     if (string.IsNullOrWhiteSpace(ImageIdFromUrl)) 
      RedirectToPage(); 

     // Query String is not valid Type of INT. 
     int ImageId; 
     bool isInt = Int32.TryParse(ImageIdFromUrl, out ImageId); 
     if (isInt) 
     { 
      // Check if a valid Object request exist in Data Source. 
      using (CmsConnectionStringEntityDataModel context = new CmsConnectionStringEntityDataModel()) 
      { 
       if (!context.CmsImagesContents.Any(x => x.ImageContentId == ImageId)) 
       { 
        RedirectToPage(); 
       } 
      } 
     } 
     else 
      RedirectToPage(); 

     #endregion 

    } 

回答

1

您不需要在每次回發時檢查它,僅在整頁加載時檢查它。查詢字符串在回發時不會發送到服務器。

我建議你移動所有查詢字符串驗證邏輯來​​分離函數。

+0

感謝凱蒂的建議! – GibboK 2011-04-26 12:10:31