我似乎无法得到这个工作...我有一些jQuery的像这样的在客户端上:jQuery的岗位空的,而不是JSON来的ASP.NET Web API
$.ajax({
type: "POST",
url: "api/report/reportexists/",
data: JSON.stringify({ "report":reportpath }),
success: function(exists) {
if (exists) {
fileExists = true;
} else {
fileExists = false;
}
}
});
在我的网站。 API控制器我有这样的方法:
[HttpPost]
public bool ReportExists([FromBody]string report)
{
bool exists = File.Exists(report);
return exists;
}
我只是检查,看是否有文件放在服务器上,并为返回一个布尔它是否确实与否。我要发送的报告字符串是UNC路径,所以reportpath看起来像'\\ some \ path \'。
我可以触发脚本,并在ReportExists方法中创建一个断点,但报表变量始终为空。
我在做什么错?
我也看到一种方式来张贴.post和postJSON。也许我应该使用其中之一?如果是这样,我的格式是什么?
更新:另一个线索可能 - 如果我删除[FromBody],那么我的断点根本就没有被打 - '没有找到与请求相匹配的http资源'。我正在看的示例显示[FromBody]不需要...?
'$ .ajax'会更适合这种情况,因为您可能还需要包含'contentType:“application/json”'作为'$ .ajax'选项 – 2013-02-08 19:12:48
请确保检查您的ModelState是否有错误以防在绑定参数时出现问题。 – 2013-02-08 20:40:46