私はASP.Net MVCを初めて使用しており、アプリケーションにAJAXを使用してデータを挿入しようとしています。データはデータベースに挿入されますが、AJAX関数は成功関数には入りません。私は、データが保存されるとき、それはあなたが成功する関数が表示するための指標を提供ASP.Net MVCでAJAXを使用してデータを挿入する
[HttpPost]
public ActionResult insert(TestCrudViewModel vm)
{
TestCrud ts = new TestCrud();
ts.FirstName = vm.FirstNameVm;
ts.LastName = vm.LastNameVm;
ts.DOB = vm.DOBVm;
ts.Mobile = vm.MobileVm;
db.TestCruds.Add(ts);
db.SaveChanges();
return View("index");
}
が機能しない理由である方法を投稿するビューを提供することはできません警告
var Insert = function()
{
debugger
var data = $("#form").serialize();
$.ajax({
type: "POST",
url: "/Main/insert",
data: data,
success: function (data) {
debugger;
alert("success");
window.location.href = "/Main/ViewList";
}
});
}
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult insert(TestCrudViewModel vm)
{
TestCrud ts = new TestCrud();
ts.FirstName = vm.FirstNameVm;
ts.LastName = vm.LastNameVm;
ts.DOB = vm.DOBVm;
ts.Mobile = vm.MobileVm;
db.TestCruds.Add(ts);
db.SaveChanges();
return View();
}
AJAXの全体のポイントは、** **同じページ上に滞在することです。 ajaxを呼び出してリダイレクトするために 'location.href'を使うのは無意味です。特に、あなたが使っていないクライアントにもビューを返すことで、あなたのアプリケーションのパフォーマンスが低下してしまったときです。スクリプトを削除し、POSTメソッドで通常の送信とリダイレクトを行います。 –
'jQuery.ajax'はページ間でリダイレクトするようには設計されていませんが、リダイレクト以外の部分的なビューを別のアクションに読み込むことがよくあります。 'Html.BeginForm(" insert "、" Main "、FormMethod.Post)'や 'RedirectToAction(" ViewList "、" Main ")'のような通常のフォーム提出を使用してください。 –
脇にリダイレクトすると、このコードがエラーを引き起こす理由は数多くありますが、データストレージロジックと関係している可能性があります。これをデバッグするには、AJAXリクエストを行った後でコンソールを開き、ネットワークタブでエラーをチェックします。リクエストをクリックすると、応答が表示されます。うまくいけば、問題をデバッグするのに役立つエラーメッセージや例外メッセージがあるはずです。 –