ASP.Net MVC 3.0 C # Как найти, если свойство существует? - PullRequest
0 голосов
/ 27 октября 2011

Привет, я хотел бы проверить, существует ли свойство?

Это мой код

 string abpath=null;
    var hc= HttpContext.Current.Request.UrlReferrer;
    if (hc.AbsolutePath !=null)
    {
        var _temp = HttpContext.Current.Request.UrlReferrer.AbsolutePath;
        abpath = _temp.ToString();
    }

Я хотел бы узнать, существует ли AbsolutePath

Может ли кто-нибудь помочь мне, как проверить. прямо сейчас он выдает ошибку, поскольку AbsolutePath не существует для проверки

Спасибо за ваше время

Ответы [ 2 ]

2 голосов
/ 27 октября 2011

Сначала необходимо сопоставить абсолютный путь (url) с путем к локальной файловой системе.Затем вы можете проверить, существует ли файл:

var localPath = Server.MapPath(hc.AbsolutePath);
var exists = System.IO.File.Exists(localPath);

Обновление: Наверное, я неправильно понял вопрос.Проблема в том, что если ваша страница / действие / и т.д. вызывается напрямую (например, путем ввода ее URL-адреса в браузере), то нет реферера (предыдущая страница).Поэтому сначала нужно проверить Request.UrlReferrer на наличие нуля:

if (hc != null && hc.AbsolutePath != null)
{
  // ...
}

BTW : поскольку AbsolutePath уже является строкой, нет необходимости вызывать ToString() для нее.Таким образом, вы можете упростить свой код еще немного:

if (hc != null)
{
  abpath = hc.AbsolutePath;
}
0 голосов
/ 27 октября 2011

Сначала проверьте URL url. Поэтому попробуйте использовать код, как показано ниже,

 string abpath=null;
    var hc= HttpContext.Current.Request.UrlReferrer;
    if (hc !=null && !string.isNullOrEmpty(hc.AbsolutePath))
    {
        var _temp = HttpContext.Current.Request.UrlReferrer.AbsolutePath;
        abpath = _temp.ToString();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...