Как создать метод контроллера ASP.NET Web API, который может вернуть результат или неавторизованный? - PullRequest
0 голосов
/ 26 июня 2019

У меня есть этот метод контроллера:

public IEnumerable<GetPersonListResult> Get()
{
    var systemID = Authenticator.AuthenticateUser(Request);
    if (systemID == 0)
        return Unauthorized();
    var dc = DataContextFactory.GeneralDataContext(ConnectionStrings.GetSystemConnectionString(systemID));
    return dc.GetPersonList(null, null, null, null, null, null);
}

Но я получаю ошибку компиляции в строке return Unauthorized();, потому что результат этого вызова не может быть преобразован в IEnumerable<GetPersonListResult>.Как я могу изменить этот метод, чтобы он мог возвращать либо данные, о которых идет речь, либо результат Unauthorized()?

1 Ответ

1 голос
/ 26 июня 2019

Так как вы хотите вернуть тип IHttpActionResult (например, Unauthorized()), тогда вместо возврата dc.GetPersonList в конце вашего метода ... вы захотите return Ok() и передать dc.GetPersonList() в качестве аргумента.

Рефакторинг на:

public IHttpActionResult Get()
{
    var systemID = Authenticator.AuthenticateUser(Request);
    if (systemID == 0)
        return Unauthorized();
    var dc = DataContextFactory.GeneralDataContext(ConnectionStrings.GetSystemConnectionString(systemID));
    return this.Ok(dc.GetPersonList(null, null, null, null, null, null));
}

Для получения дополнительной информации см. Документы MS

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...