从 Asp.Net MVC 4 Web API 返回视图
本文关键字:API 返回 视图 Web Asp Net MVC | 更新日期: 2023-09-27 18:34:25
当我正在处理Asp.Net MVC 4 Web API
时,我还需要返回特定条件下的视图。我的流程如下:
- 第三方应用程序将调用我的 Web API 方法。(例如用户身份验证)
- 如果有有效的凭据,我需要将 HTTP 状态返回为成功 (200)
- 如果用户无效,我需要从同一 MVC 应用程序返回 VIEW(登录视图)以请求凭据。(在视图中将有一个"注册"链接)
所以关键是,这是否可以通过相同的 WEB API 方法在不同条件下同时返回LOGIN View (html)
和WebResponse Status (200)
?
提前谢谢。
你可以做两件事:
- 使用Jon Galloway教程中的
AuthorizeAttribute
:WebAPI入门 -
将您的响应数据包装在
HttpResponseMessage
中,并在需要时重定向用户。例如:var responseMessage = new HttpResponseMessage<Stock>(null, HttpStatusCode.RedirectMethod); responseMessage.Headers.Location = new Uri("http://www.mysite.com/login"); return responseMessage;
您应该能够,前提是方法的返回类型为 ActionResult
。 毕竟,Web API 只是从控制器派生而来的。 但更大的问题是:你的客户能处理同一个问题的如此不同的答案吗? 也许你应该在成功时返回 200,在"去询问另一种方法的视图"时返回非 200。