Я новичок в c# и у меня возникла проблема с попыткой настроить перехват определенного класса c.
У меня уже есть много trycatch и перенаправлений в моем коде, но 1 часть Кажется, я не могу получить это ниже, я знаю, что проблема в том, что класс является int и должен быть ActionResult для использования перенаправления, но затем я получаю ошибку в возвращаемом int. Мне нужно, чтобы класс работал для обоих.
Текущий класс в моем BaseController, который работает, и я вызываю GetUID () на большинстве других контроллеров;
public int GetUID()
{
return int.Parse(System.Web.HttpContext.Current.Session["UID"].ToString());
}
У меня есть проблема, если чей-то сеанс время от времени они получат ошибку, но я хочу, чтобы они были перенаправлены на страницу входа в систему.
Поэтому я попытался сделать следующее;
public int GetUID()
{
try
{
return int.Parse(System.Web.HttpContext.Current.Session["UID"].ToString());
}
catch(Exception)
{
return RedirectToAction("Login", "Account");
}
}
, потому что класс является классом int Я получаю сообщение об ошибке при перенаправлении: «Не удается неявно преобразовать тип« System.Web. Mvc .RedirectToRouteResult »в« int »».
Я также попытался выполнить следующее;
public ActionResult GetUID()
{
try
{
return int.Parse(System.Web.HttpContext.Current.Session["UID"].ToString());
}
catch(Exception)
{
return RedirectToAction("Login", "Account");
}
}
Но тогда я получаю противоположную ошибку: "Не удается неявно преобразовать тип 'int' в 'System.Web. Mvc .RedirectToRouteResult'".
Есть ли способ сохранить класс вернуть int, НО, если есть ошибка, чтобы перенаправить на страницу входа? Я посмотрел на SO и Google, и я вижу множество вопросов о переходе с View на Action, et c. но ничего похожего на это. Цени любую помощь.