Проверьте допустимость для QueryString, используя Entity Framework - PullRequest
0 голосов
/ 26 апреля 2011

Я использую C # Asp.Net и EF 4.

У меня есть сценарий, такой как MasterPage и DetailsPage.

Таким образом, из моей MasterPage я передаю переменную как QeryString в DetailsPage, DetailsPage покажет детали для определенного элемента в моей базе данных.

Мне нужно проверить действительность моей QueryString, в деталях мне нужно:

  • Проверьте, имеет ли значение Null, Пусто или Пробелы.
  • Проверьте, не имеет ли тип 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

    }

1 Ответ

1 голос
/ 26 апреля 2011

Вам не нужно проверять это при каждой обратной передаче, только при полной загрузке страницы.Строка запроса не отправляется на сервер при обратной передаче.

Я предлагаю переместить всю логику проверки строки запроса в отдельные функции.

...