Добавление перечислимых значений в список внутри действия - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть следующий код, в котором есть несколько ошибок, которые я не могу отработать.Я пытаюсь добавить значения в List, если у пользователя есть доступ, а затем вернуть это List.

. Красная линия появляется под notificationsList, когда я пытаюсь ее вернуть.

Но я не уверен, правильно ли я сделал для начала.

public ActionResult GetUserNotificationOptions() {

    List<NotificationOption> notificationsList = new List<NotificationOption>();

    if(UserAccountHandler.GetIsAuthorised(_db, RestrictedArea.Audits))
    {
        notificationsList.Add(NotificationOption.NewAudits);
    }
    if (UserAccountHandler.GetIsAuthorised(_db, RestrictedArea.Overview))
    {
        notificationsList.Add(NotificationOption.SiginificentDeviationInScore);
    }
    if (UserAccountHandler.GetIsAuthorised(_db, RestrictedArea.Action))
    {
        notificationsList.Add(NotificationOption.OutstandingActions);
    }

    return notificationsList;
}

Ответы [ 3 ]

1 голос
/ 02 апреля 2019

Это выглядит как несоответствие типов для меня. Мой C # ржавый, но, похоже, ваш метод объявляет, что он возвращает ActionResult, но на самом деле возвращает List<NotificationOption>.

Есть два способа исправить это:

  1. Объявите класс для возврата списка, используя public class List<NotificationOption> GetUserNotificationOptions{}

или

  1. Преобразуйте ваш список в ActionResult перед его возвратом.
0 голосов
/ 02 апреля 2019

Если вы хотите вернуть результат клиенту, вы можете использовать JsonResult как один из возможных вариантов.

public JsonResult GetUserNotificationOptions() {

    ...
    return Json(notificationsList);

}
0 голосов
/ 02 апреля 2019

Вы должны объявить свою функцию как:

public List<NotificationOption> GetUserNotificationOptions() {

в противном случае возвращаемая переменная несовместима с объявленным типом возврата.

...