Сначала необходимо сопоставить абсолютный путь (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;
}