2011-04-26 102 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