私はjクエリ呼び出しでデータを渡します。IDはデータベース上に自動インクリメントされたキーがあります。そのため、スクリプトに変数を作成してそれを模倣しました。JSONデータをWebApiに渡してデータベースを変更しない
webApiのメソッドは正常なリクエストを示していますが、データベースの変更を実行するコードはブレークポイントを実行するとヒットしません。
これはJqueryかMVC関連かどうかわかりませんので、両方にタグを付けるつもりです。ポストウェブAPIの要求がヒットしている
WEBAPIルート:
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute (
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
スクリプト:
<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++;
});
WEBAPIポスト:
[ResponseType(typeof(Post))]
[HttpPost]
[Route("api/Posts")]
public IHttpActionResult PostPost(Post post)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Posts.Add(post);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = post.ID }, post);
}
あなたはapi行を行単位でチェックしてみましたか?あなたのポストパラメタは完全な値を持っていますか? – Redan
@Redanはいオブジェクトが渡されたときに唯一の義務的値が訂正されます。 –
@TahaMouhtijこれはルーティングの問題です。アクションに当たっていない場合は、あなたが投稿しているURLがAPI用に設定されたルートに一致していません。問題を再現するために使用できる[mcve]を提供してください。現在十分な情報が提供されていません。 – Nkosi