2
如何使用Web API在Knockout JS
中發佈數據。在淘汰賽中使用webapi發佈數據js
當我發佈數據時,它會給出錯誤請求錯誤。 。 。
我有以下ViewModel
function StudentViewModel() {
var self = this;
self.StudentID = ko.observable("");
self.Name = ko.observable("");
self.Age = ko.observable("");
var Student = {
StudentID: self.StudentID,
Name: self.Name,
Age: self.Age
};
self.Student = ko.observable();
self.Students = ko.observableArray();
var baseUri = '@ViewBag.ApiUrl';
$.getJSON(baseUri, self.Students);
self.create = function() {
if (Student.Name() != "" && Student.Age() != "") {
$.ajax({
url: baseUri,
cache: false,
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: ko.toJSON(Student),
success: function (data) {
// alert('added');
self.Students.push(data);
self.Name("");
self.Age("");
}
}).fail(function (xhr, textStatus, err) {
alert(err);
});
}
else {
alert('Please Enter All the Values !!');
}
};
更新:
這裏是控制器動作
public HttpResponseMessage PostStudent(Student student)
{
if (ModelState.IsValid)
{
db.Students.Add(student);
db.SaveChanges();
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, student);
response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = student.StudentID }));
return response;
}
else
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
請問你的控制器動作是什麼樣子? – nemesv
@nemesv查看更新 –
看起來您的POST正在到達控制器,但模型數據無效。嘗試(a)查看您的應用正在發送的實際HTTP請求,以及(b)使用Fiddler等測試發送POST請求,並查看是否有任何區別。 –