如何使用C#中的AJAX请求发送的Json格式数据?
这是使用JQuery和AJAX的视图
<script type="text/javascript">
$(function () {
$("#btnGet").click(function () {
var values =
{
"Name": "Manuel Andrade",
"DateOfBirth": "12/01/1995"
}
$.ajax({
type: "POST",
url: "/api/WebApi/GetAge",
data: values,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert("Hello: " + response.Name + ".\nCurrent Date and Time: " + response.DateTime);
},
failure: function (response) {
alert(response.responseText);
},
error: function (response) {
alert(response.responseText);
}
});
});
});
</script>
这是控制器:
public class PersonController : ApiController
{
[System.Web.Http.Route("api/WebApi/GetAge")]
[System.Web.Http.HttpPost]
public Person GetAge(Person person)
{
//person = new Person();
//person.Name = "Luis";
JsonTest(person);
//int ageInMonths = calculateAgeInMonths(person);
//int ageInYears = calculateAgeInYears(person);
//System.Diagnostics.Debug.WriteLine(ageInMonths);
//System.Diagnostics.Debug.WriteLine(ageInYears);
return person;
}
}
Person Model与视图中的Json变量具有完全相同的属性。它不应该自动创建一个对象吗?方法JsonTest()正常工作,它用于序列化数据。如果我取消对人员实例化和分配给Luis的注释,该方法会将带有该数据的Json返回给视图。但是,如果我尝试使用person参数就像它抛出一个null异常。如何将View中的var值传递给GetAge方法,以便将其分配给对象?
答案 0 :(得分:0)
当我删除contentType: "application/json; charset=utf-8",
行时,它对我来说很好。
默认情况下,它不会以application / json的形式返回。