使用实体框架检查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
}
您不需要在每次回发时检查它,只需要在整个页面加载时检查。在回发时,查询字符串没有发送到服务器。
我建议您将所有查询字符串验证逻辑移动到单独的函数中。