使用实体框架检查QueryString的有效性

本文关键字:QueryString 有效性 检查 框架 实体 | 更新日期: 2023-09-27 17:53:12

我使用c# Asp。4.

我有一个场景,如MasterPage和detailpage。

所以从我的MasterPage我传递一个变量作为一个QeryString到DetailsPage, DetailsPage将在我的数据库中显示一个特定项目的详细信息。

我需要检查我的QueryString的有效性,详细信息我需要:

  • 检查是否为空、空或空白。
  • 检查是否不是INT类型(只是数字而不是任何字母)。
  • 检查对象是否在我的数据库中不存在

如果检查结果为True,我将重定向用户。

在我写这个脚本的时候。它是有效的,但是我想知道你是否知道一个更好的方法/代码来解决这个

我也想知道是否有意义有这个逻辑在每次页面加载,或者将足够我们只是在! 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
    }

使用实体框架检查QueryString的有效性

您不需要在每次回发时检查它,只需要在整个页面加载时检查。在回发时,查询字符串没有发送到服务器。

我建议您将所有查询字符串验证逻辑移动到单独的函数中。