2012-05-17 2 views
2

Поскольку я работаю над Asp.Net MVC 4 Web API, мне также необходимо вернуть Вид на конкретное состояние. Мой поток приведен ниже:Обратный просмотр от Asp.Net MVC 4 Веб-API

  1. Стороннее приложение вызовет мой метод Web API. (например, аутентификация пользователя)
  2. Если у вас есть действующие учетные данные, мне нужно вернуть статус HTTP как SUCCESS (200)
  3. Если пользователь недопустим, мне нужно вернуть VIEW (вид входа) из того же приложения MVC запросить учетные данные. (В представлении будет ссылка «Register»)

Так точка, возможно ли это, чтобы вернуться как LOGIN View (html) и WebResponse Status (200) на различных условиях тем же методом WEB API?

Заранее спасибо.

+0

Вы могли бы быть лучше, возвращающая результат с URL переадресации на ваш взгляд. – jrummell

ответ

3

Вы могли бы сделать две вещи:

  1. Использование AuthorizeAttribute как в учебнике Джон Галлоуэй: Getting started with WebAPI
  2. Заверните Ваши данные ответа в HttpResponseMessage и при необходимости перенаправить пользователя. Например:

    var responseMessage = new HttpResponseMessage<Stock>(null, HttpStatusCode.RedirectMethod); 
    responseMessage.Headers.Location = new Uri("http://www.mysite.com/login"); 
    
    return responseMessage; 
    
0

Вы должны иметь возможность, если тип возвращаемого метода равен ActionResult. В конце концов, Web API просто происходит от Controller. Более широкий вопрос: может ли ваш клиент обрабатывать такие измененные ответы на один и тот же вопрос? Возможно, вам стоит вернуть 200 на успех и не-200 на «go ask other method for view».

Смежные вопросы