我目前正在通过针对WebAPI的Pluralsight培训,并遇到一些问题(下载示例没有帮助,因为他们不工作 - 该课程创建了测试版,我正在使用.Net 4.5的最终版本)。我创建了一个非常简单的看法有以下HTML:WebAPI不序列化
<form onsubmit="return submitCourse();">
<input type="text" name="name" id="name" />
<input type="submit" value="Create Course" />
</form>
<h1 id="msg"></h1>
<script>
//1: have form - get values from form - send to API as json
//2: use form values
function submitCourse() {
//$.ajax({
// url: '/api/courses',
// type: 'POST',
// dataType: 'json'
//});
$.ajax({
url: '/api/courses/',
type: 'POST',
dataType: 'json',
success: function (newCourse) {
var msg = 'New course id = ' + newCourse.id;
$('#msg').text(msg);
}
});
return false;
}
</script>
什么是应该发生的是当形式去提交,脚本首先运行和表单数据是通过AJAX调用给我发送。我现在遇到的问题是,当Post方法在我的控制器被击中时,“newCourse”参数总是空:
public Course Post(Course newCourse)
{
newCourse.id = _courses.Count;
_courses.Add(newCourse);
//TODO : return 201
return newCourse;
}
挖通过各种工具,我发现上面的脚本似乎并没有被发送数据在所有(内容长度为0),但我似乎无法弄清楚为什么(新的WebAPI和jQuery的$ .ajax()调用)。我尝试使用$ .ajax()调用中的“数据”选项(如下所示:data:{'name':$('#name')明确设置调用正文的形式值。 ()}),但那也没有做太多。内容长度似乎改变(到5,不知道为什么),但值仍然没有被反序列化。
任何提示?我对这两种技术都很陌生,不知道从哪里开始。
完美的工作,谢谢! – RubyHaus