私はASP.NET Core Webアプリケーションを持っています。実際のMVCフォームとポストバックを使用するのではなく、純粋なAjaxリクエストで処理する方が好きです。私のコントローラには、ビューを返すアクションと、そのアクションの下のdeleteメソッドのようなアクションがAPIのようなものになっています。ASP.NET MVCコアのAJAX Requestをコントローラに送るときにParamがnullになる
以下のコアでは、正常に動作していますが、idパラメータは常にnullです。私は間違って何をしていますか?
MVCコントローラ:
// POST: Users/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Delete([FromBody] string id)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var user = await _userManager.FindByIdAsync(id);
if (user == null)
{
return NotFound();
}
await _userManager.DeleteAsync(user);
return Ok(user);
}
AJAXリクエスト:
$.ajax({
url: '@Url.Action("Delete", "Projects")',
contentType: "application/json",
type: "POST",
headers:
{
"RequestVerificationToken": '@GetAntiXsrfRequestToken()'
},
data: JSON.stringify({ "id": "ABC123" }),
success: function() {
alert('Deleted Successfully');
// Remove row from grid.
}
});
はそれがASPでAjaxリクエストのためのAPIコールのようなより多くの行動の両方のビューを返すアクションとアクションを作成する必要がするのが一般的です.NET MVC Webアプリケーション? AntiForgeryTokenを渡す必要があるため、API呼び出しを検討していません。
はまだ 'null'なのでPARAMです例えば郵便配達員を使用してリクエストしますか? 'URL.Action()'が正しいURLを生成しているかどうかを確認しようとしています。 – Ignas