【问题标题】:Return View from Asp.Net MVC 4 Web API从 Asp.Net MVC 4 Web API 返回视图
【发布时间】:2012-05-17 17:52:41
【问题描述】:

由于我正在处理Asp.Net MVC 4 Web API,我还需要返回一个特定条件下的视图。我的流程如下:

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

所以重点是,这是否可以通过相同的 WEB API 方法在不同条件下同时返回 LOGIN View (html)WebResponse Status (200)

提前致谢。

【问题讨论】:

  • 您最好将带有重定向网址的结果返回到您的视图。

标签: c# asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:

你可以做两件事:

  1. 使用AuthorizeAttribute,就像在 Jon Galloway 的教程中一样: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;
    

【讨论】:

    【解决方案2】:

    如果你的方法的返回类型是ActionResult,你应该可以。毕竟,Web API 只是从 Controller 派生的。但更大的问题是:您的客户能否处理同一个问题的不同答案?也许您应该在成功时返回 200,而在“向其他方法询问视图”时返回非 200。

    【讨论】:

      猜你喜欢
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 2012-03-30
      相关资源
      最近更新 更多