View-Index.cshtmlが1つのみのProductsControllerがあります。HttpDeleteアクションにDELETE要求を送信するとルーティングが機能しない
次の3つのアクションメソッドは、このコントローラの内部である:私は/製品に行くとき
//http://localhost:55555/products
[HttpGet]
public IActionResult Index()
{
}
//http://localhost:55555/products
[HttpPost]
public IActionResult Index(ProductViewModel product)
{
}
//http://localhost:55555/products/1
[HttpDelete("{id}")]
public IActionResult Index([FromRoute] int id)
{
}
取得は完全に正常に動作します。 /製品を使用して新しい製品を作成すると、Postは完璧に機能します。削除がまったく機能しない、/ products/9の404が見つかりません。私は標準のAJAXリクエストw/type:DELETEを使用しています。
私はデフォルトMVC従来のルーティング設定を使用しています:私もhttp://localhost:55555/products/1に郵便配達中にDELETEリクエストを送信しようとした
$(".js-delete-product").click(function() {
$.ajax({
type: "DELETE",
url: "products/" + $(this).data("id"),
success: onDeleteSuccess
});
});
:ここ
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
は次のように私のAjaxリクエストが見えるものです私のjquery ajaxではないことを確認し、まだ404は見つかりませんでした。
UPDATE: 私はちょうどhttp://localhost:55555/products DELETEリクエストを送信した場合、それは機能になりますが、あなたが期待するようのidのparamがnullに設定されています。なぜこれが起こっているのか?私はparamが渡された場合にのみdeleteメソッドに移りますが、paramが渡されると(404 not found)入りません。
'http:// localhost:55555/products/index/1'にDELETEリクエストを送信して、それが動作するかどうか確認してください。 – rabelloo
あなたのAjaxコードを投稿できますか? –
@Dobbins私はajaxコードで投稿を更新しました。なぜそれがうまくいかないのか分かりません。コンソールに404エラーが表示され、要求されたURLがhttp:// localhost:555555/products/1 –