2012-05-17 169 views
2

由于我在Asp.Net MVC 4 Web API上工作,我还需要返回对特定条件的查看。我的流程如下:从Asp.Net MVC 4返回视图Web API

  1. 第三方应用程序将调用我的Web API方法。 (例如,用户身份验证)
  2. 如果有一个有效的凭证,我需要返回是成功的HTTP状态(200)
  3. 如果用户是无效的,我需要从同一个MVC应用程序返回一个VIEW(登录查看)要求认证。 (在视图中会有一个“注册”链接)

所以问题是,这是可能返回两个LOGIN View (html)和相同的Web API的方法在不同的条件下一个WebResponse Status (200)

在此先感谢。

+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“去问问其他方法的观点”。