何らかの理由で、投稿された (serializeArray) フォーム データを ServiceStack にシリアライズすることができません。投稿されたjsonは次のとおりです。
{"somestuff":"someData","formInput":[{"name":"1","value":"2"},...]}
フォームを投稿するために使用しているjQuery:
var formData = $("form").serializeArray();
var data = {
someOtherFields: some data,
formInput: formData
};
$.ajax({
type: "post",
url: "/api/location",
data: data,
dataType: "json",
success: function(response) {
if (response.status == "success") {
scope.showForm = false;
scope.status = "successfully added message";
} else {
scope.status = response.message;
}
}
});
これは、DTO を使用して ServiceStack サービスに投稿しています。
public class ServiceRequest
{
other atributes;
public List<ArraySerializeResult> FormInput { get; set; }
}
public class ArraySerializeResult
{
public string Name { get; set; }
public string Value { get; set; }
}
他の属性は正常にシリアル化されますが、formInput は正しい数の要素を持つリストにシリアル化されますが、名前と値のペアはすべて null です。