1
我想使用的WebAPIJSON反序列化問題與PUT請求的Web API
我有一個控制器執行操作
AdminController類
[HttpPut]
[Route("newprofile")]
public HttpResponseMessage Update(AdminAction adminAction)
{
if (_adminManager.ApproveUser(adminAction))
{
return Request.CreateResponse(HttpStatusCode.OK);
}
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
的資源來執行更新
資源
public class AdminAction : BaseResource
{
public bool Approve { get; set; }
public bool Delete { get; set; }
public string EmailId { get; set; }
public string Language { get; set; }
[IgnoreDataMember]
public Language eLanguage { get; set; }
}
Ajax代碼
activate: function (e) {
var email = this.model.get('Email');
var adminAction = {
"Approve": true,
"Delete": false,
"EmailId": email,
"Language": $("#ddlMotherTongue").val()
}
var url = kf.Settings.apiUrl() + '/admin/newprofile';
$.ajax(url, {
type: "put",
data: JSON.stringify(adminAction),
success: function (data, textStatus, jqXHR) {
alert('Profile approved');
$("table tr td").filter(function() {
return $(this).text().trim() == email;
}).parent('tr').css({'border': '1px solid green', 'border-left': 'none', 'border-right': 'none','color':'green'});
},
error: function (jqXHR, textStatus, errorThrown) {
if (jqXHR.status == 400) {
var errorJson = jQuery.parseJSON(jqXHR.responseText);
if (errorJson.hasOwnProperty("Errors")) {
switch (errorJson.Errors[0].ErrorType) {
}
}
}
},
async: true
});
return false;
},
提琴手
網址:http://lapi.x.com/admin/newprofile
請求頭
Accept: application/json
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Authorization: Token dd39c761-3060-498b-9393-92b12cace238
Connection: keep-alive
Content-Length: 76
Content-Type: application/json
Host: lapi.x.com
Origin: http://x.com
Referer: http://x.com/
身體
{"Approve":true,"Delete":false,"EmailId":"[email protected]","Language":"Hindi"}
當我執行put操作(提琴手和代碼)在put方法收到的管理對象(代碼後面)已設置爲默認值的對象的所有類型,即通過值沒有反序列化。
關於我能做些什麼JSON的任何想法,服務器不喜歡它?
嘗試增加'[數據成員]'上的構件中的一個,並且還'[DataContract]'上的類'AdminAction'。還有哪個WebAPI使用1或2?你使用的是Json.NET還是DataContractJsonSerializer? –
我將我的項目從OpenRasta遷移到WebApi,這個Api在OpenRasta中工作,所以我忽略了這些屬性。 – sham