$.ajax({
type: 'POST',
url: "/api/student",
data:'{"x":3,"y":2}',
dataType: "json",
complete: function (r, s) {
debugger;
},
success: function(response){
debugger;
},
contentType: "application/json" // !!!!!!!!!!!! The reason of problem. I could see Json on firebug. It was false-positive for my code !
});我已经通过Firebug追踪到流了。Firebug识别并显示了JSON对象。
此代码访问RestServiceBase的OnPost方法.But模型绑定不起作用。Json对象和C#类的属性名必须完全相同吗?
还是我错过了什么?(是的,您遗漏了一些东西!)
PS:我希望把url改成"/api/student/json/asynconeway“,但是我得到了404错误
发布于 2012-07-27 07:27:46
我得补充一句
dataType: ajax请求的“应用程序/json”属性!
发布于 2012-07-27 06:43:12
ServiceStack 确实通过模型绑定了JSON POST (以及任何支持的内容类型,包括x-www-form-urlencoded)。
在ServiceStack.Examples中有很多这样做的例子。
此代码访问RestServiceBase的OnPost方法.But模型绑定不起作用。
您还没有显示您试图绑定到的DTO是什么。但是这个JSON
{"x":3,"y":2}将映射到匹配的DTO,例如:
public class Student {
public int X { get; set; }
public int Y { get; set; }
}对象和C#类上的属性名必须完全相同吗?
它们必须与-的名称相匹配,但不区分大小写,请参见上面的内容。
学生PS:我已经把url改成了“/api/
/json/asynconeway”,但是我得到了404错误。
这是错误的。如果您尝试使用automatic pre-defined route,则正确的url为:
/api/json/asynconeway/student假设您的请求DTO名为Student。
发布于 2012-07-27 06:00:27
下面是我的一些代码:
$.ajax({
type: "POST",
url: "/artist/delete",
data: { id: itemId },
success: function () {
$("div#" + itemId).fadeOut(function () { $(this).remove(); });
}
});编辑:很抱歉我搞错了你想要什么,所以我会问你一个问题,为什么你要把json发送到服务器上,在那里你可以做这样的函数:
[HttpPost]
public ActionResult Delete(int id)
{
var artist = _db.Artists.Where(x => x.ID == id).SingleOrDefault();
if (artist == null)
{
return Content("false");
}
else
{
_db.Artists.DeleteOnSubmit(artist);
_db.SubmitChanges();
return RedirectToAction("Post");
}
}EDIT2:,这里有语法错误data:'{"x":3,"y":2)}',。
EDIT3:另一个语法错误
}
}
});在代码的末尾。
https://stackoverflow.com/questions/11678610
复制相似问题