2014-04-30 110 views
0

我有一個情況,我有一個MVC控制器,我打電話給WebApi POST方法。我傳遞一個DTO作爲參數... WebApi方法被擊中,但參數爲空。我錯過了什麼?從MVC控制器參數調用WebApi方法始終爲空

謝謝! MVC控制器:

 [Authorize] 
    public async Task<ActionResult> Index() 
    { 
     Permissions service = new Permissions(); 
     ViewBag.Title = "Deployment Manager"; 

     string uri = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiRestfulUrl"] + "/Permissions"; 
     using (var client = new HttpClient()) 
     { 
      var permissions = new PermissionsDTO() { UserName = "rherhut" }; 
      var response = await client.PostAsJsonAsync(uri, permissions); 
      if (response.IsSuccessStatusCode) 
      { 
       // Get response data how?? 
      } 

     } 

     return View(); 
    } 

的WebAPI POST方法:

 public HttpResponseMessage Post(HttpRequestMessage request, [FromBody]PermissionsDTO permissions) 
    { 
     var data = repository.HasAdminRights(permissions.UserName); // permissions.UserName is null 
     var response = new ApiResponseCreator<PermissionsDTO>(); 
     return response.FormatReturnData(request, data); 
    } 
+1

如問題中所建議的權限爲null,或者是代碼中建議的permissions.Username null? – cheesesharp

+0

也請爲您的客戶端添加代碼,這是調用這個API方法? – qamar

+0

抱歉...權限不爲空,但是permissions.UserName爲空。 – RSH

回答

0

我用一個 「序列化」 屬性,由於某種原因,這個工作裝飾DTO類解決了這個問題。