开发者

Check Validity for a QueryString using Entity Framework

I use C# Asp.Net and EF 4.

I have a scenario like MasterPage and DetailsPage.

So from my MasterPage I pass a variable as a QeryString to the DetailsPage, the DetailsPage will show up details for a specifc item in my DataBase.

I need to check the validity for my QueryString, in details I need:

  • Check if is Null, Empty or White Spaces.
  • Check if is NOT of type INT (just numbers not any letters).
  • Check if the Object NOT exists in my DB.

In case if Check result True, I will redirect the User.

At the moment I wrote this script. It is works but I would like to know if you know a better approch/code to solve this.

Also I would like to know if make sense to have this logic on every ti开发者_StackOverflow中文版me the page Load, or would be enought us just on !Page.IsPostBack.

Thanks once again for your support guys!

   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

    }


You don't need to check it on every postback, only on a full page load. The query string is not sent to the server on postbacks.

I suggest you move all the query string validation logic to separate functions.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜