2012-08-29 106 views
0

我剛從測試版更新MVC4 WebAPI到RC,現在這部分代碼不起作用。 我從這裏讀到: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/e90d582a-7023-44a1-b311-4fe1370b0314/,我不得不使用HttpResponseMessage中的非泛型類型錯誤

Request.CreateResponse(HttpStatusCode.OK, Response)

但是有沒有CreateResponse這需要兩個參數實現?所以我想知道如何繼續修復這部分?

public HttpResponseMessage<Response> Login(string username, string password) 
{ 
     ApiResponse<string> user = am.LogOn(username, password); 
     System.Diagnostics.Debug.WriteLine(username + " - " + password); 
     System.Diagnostics.Debug.WriteLine("User status is: " + user.Status); 

     switch (user.Status) 
     { 
      case ResponseStatus.OK: 
       System.Diagnostics.Debug.WriteLine(user.Value); 
       return new HttpResponseMessage<Response>(new Response { Token = user.Value, ValidTo = user.ValidTo }); 
      default: 
       return new HttpResponseMessage<Response>(HttpStatusCode.Forbidden); 
     } 
} 

回答

0

但是沒有CreateResponse實施這需要兩個參數?

當然,there is

public HttpResponseMessage Login(string username, string password) 
{ 
    ApiResponse<string> user = am.LogOn(username, password); 
    System.Diagnostics.Debug.WriteLine(username + " - " + password); 
    System.Diagnostics.Debug.WriteLine("User status is: " + user.Status); 

    switch (user.Status) 
    { 
     case ResponseStatus.OK: 
      System.Diagnostics.Debug.WriteLine(user.Value); 
      return Request.CreateResponse(
       HttpStatusCode.OK, 
       new Response { Token = user.Value, ValidTo = user.ValidTo } 
      ); 
     default: 
      return Request.CreateResponse(HttpStatusCode.Forbidden); 
    } 
} 
+0

我想,一個早已但VS2010說,有沒有這樣的重載方法:/ – starcorn

+0

這工作完全正常,我在RTM。它也在RC中工作。 –

+0

但是我仍然沒有把它作爲一個選項。當我更新到RC時,我使用了這個包。 http://www.nuget.org/packages/Microsoft.AspNet.WebApi.Client是否正確,還是缺少其他一些軟件包? – starcorn