我通过j查询调用传递数据,我在数据库上有一个自动递增的密钥ID,所以我在脚本上创建了一个变量来模仿它。
webApi上的方法显示了一个成功的请求,但运行数据库更改的代码在我运行断点时没有被命中。
我不知道这是否与Jquery或MVC有关,所以我要标记两者。
证明网络后api的请求被点击,http://imgur.com/a/TZSA4
WebApi路线:
ListIterator<String[]> outputArrayOfValues = ListOfArrayOfValues.listIterator();
while(outputArrayOfValues.hasNext()) {
// add this line to get the values from the current item in the iterator
String[] rowValues = outputArrayOfValues.next();
for(String num : rowValues)
{
// change this line to not print a carriage return
System.out.print(num + " ");
}
// print the carriage return here
System.out.println();
}
脚本:
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute (
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
WebApi帖子:
<script >
var id = 29;
function populateTab() {
}
var addvisible = document.getElementById("btnshowadd");
$("#addpostform").hide();
addvisible.onclick = function () { $("#addpostform").show() };
$("#hideadd").click(function () {
var postObject = {
ID: id,
Title: $("#PostTitle").val(),
Body: $("#PostBody").val(),
Image: $("#PostImage").val(),
DateTime: Date.now()
};
jQuery.ajax({
type: "POST",
data: JSON.stringify(postObject),
url: "../api/posts",
contentType: "application/json"
});
id++;
});
答案 0 :(得分:0)
您可以尝试以下方法: 不传递id的任何值,让值为null。
由于您提到它是一个自动增量ID,因此数据库应该处理ID创建部分。
让我知道它是否成功。
还可以试试(伪代码,请不要复制粘贴),
result = db.savechanges();
if(result&gt; 1){
//重定向代码
}否则{
//重试逻辑或其他东西
}
在结果处设置一个断点,看看intellisense是否为您提供了有关错误的更多信息
答案 1 :(得分:0)
我遇到的主要问题是跟随Jeylani的答案之后的日期我发现不应该指定ID,因为它是自动递增的,而且我需要使用新的 Date()。toLocaleString() 而不是 date.now();