2014-03-12 84 views
1

類型的WebAPI我有一個Web服務POST複雜的jQuery的

[HttpPost] 
[ActionName("ChangePassword")] 
public string ChangePassword(Models.User value) 
{ 
    return ""; 
} 

而且User類的結構是

public class User 
{ 
    public string Username { get; set; }  
    public string OldPassword { get; set; }  
    public string NewPassword { get; set; } 
} 

我打電話來此從JQuery的

var value = { 'Username': name.val(), 'OldPassword': oldPassword.val(), 'NewPassword': newpassword.val() }; 
var b = JSON.stringify(value); 
$.ajax({ 
    type: "POST", 
    url: "http://tryURL/api/service/ChangePassword", 
    async: true, 
    cache: false, 
    type: 'POST', 
    data: JSON.stringify(value), 
    dataType: "json", 
    success: function (result) { 
     alert(result); 
    }, 
    error: function (jqXHR, exception) { 
    } 
}); 

現在當我調試Web服務時,它給了我一個對象,但在對象內部,所有的屬性都是空的。我也嘗試將[fromBody]放在參數中,但它不起作用。

+0

注意它的不尋常的Web API使用'ActionName'。應該將*「action」*視爲您在* HTTP Resource *上執行的* HTTP Verb *(GET,POST等)。請參見[ASP.NET Web API中的路由](http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api) –

回答

2

嘗試這樣,它可以在阿賈克斯

data: JSON.stringify(value),//no change 

工作

var value = {}; 
value.Username=name.val(); 
//etc 

然後取出var b = JSON.stringify(value);

0
data: 'value=' + JSON.stringify(value)