این آموزش در راستای آموزش قبلی میباشد. در آموزش قبل کلیات و ساختار Ajax را مورد برسی قرار دادیم و در این قسمت قصد داریم تا ثبت اطلاعات یک فرم را با کمک Ajax مورد برسی قرار دهیم. برای مشاهده تمام قسمت های آموزش Ajax در ASP.NET MVC 5 اینجا کلیک کنید.
در این مثال قصد داریم تا فرم های استانداردی که نوسط خود Visual Studio برای Create کردن ایجاد میشود را به حالت Ajax دربیاوریم.
@using (Html.BeginForm("Register", "User", FormMethod.Post, new {@id="Myform"}))
$("#Myform").submit(function (e) {
});
e.preventDefault();
if ($("#Myform").valid()) {
alert("تمامی فیلد ها به درستی پر شده است");
} else {
alert("تمامی فیلد ها به درستی پر نشده است");
}
var Name = $('#Name').val();
var Family = $('#Family').val();
var Password = $('#Password').val();
var token = $('[ name="__RequestVerificationToken"]').val();
$.ajax({
url: '/User/Test',
type: 'POST',
data: { __RequestVerificationToken: token, Name: Name, Family: Family, Password: Password },
success: function (res) {
alert(res);
},
error: function (error) {
alert(error);
}
});
مشاهده کامل کد
$("#MyForm").submit(function (e) {
e.preventDefault();
if ($("#MyForm").valid()) {
alert("تمامی فیلد ها به درستی پر شده است");
var Name = $('#Name').val();
var Family = $('#Family').val();
var Password = $('#Password').val();
var token = $('[ name="__RequestVerificationToken"]').val();
$.ajax({
url: '/User/Test',
type: 'POST',
data: { __RequestVerificationToken: token, Name: Name, Family: Family, Password: Password },
success: function (res) {
alert(res);
},
error: function (error) {
alert(error);
}
});
} else {
alert(" فیلد ها به درستی پر نشده است");
}
});
حال قصد داریم تا زمانی که یک کاربر ثبت میشود، آن کاربر را بدون اینکه صفحه رفرش شود در همان صفحه نمایش دهیم.
@Html.Action("Partial Name")
return RedirectToAction("Partial Name");
$('#Id Partial View').html(res);
مشاهده کدهای سمت View
$("#MyForm").submit(function (e) {
e.preventDefault();
if ($("#MyForm").valid()) {
var Name = $('#Name').val();
var Family = $('#Family').val();
var Password = $('#Password').val();
var token = $('[ name="__RequestVerificationToken"]').val();
$.ajax({
url: '/User/Test',
type: 'POST',
data: { __RequestVerificationToken: token, Name: Name, Family: Family, Password: Password },
success: function (res) {
$('#MyList').html(res);
},
error: function (error) {
alert(error);
}
});
} else {
alert(" فیلد ها به درستی پر نشده است");
}
});
مشاهده کدهای سمت Action
public ActionResult Test()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Test([Bind(Include = "UserID,Name,Family,Password")] User user)
{
if (ModelState.IsValid)
{
db.Users.Add(user);
db.SaveChanges();
return RedirectToAction("Testxx");
}
return Content("عملیات با موفقیت انجام نشد.");
}
برای نمایش spinner زمانی که در حالت ارسال و یا دریافت اطلاعات هستید میتوانید از دستورات ()Hide و یا ()Show و یا هر دستوری که مناسب هست استفاده کنید ولی مهم جایی است که یک المان را فعال و جایی است که یک المان را غیر فعال میکنید. بهترین مکان برای نمایش و لغو نمایش spinner و یا Loader در کد های Jquery در کد زیر نمایش داده شده است.
توجه داشته باشید که Loader و یا spinner خود را هم در تابع success و هم در تابع error غیر فعال کنید.
//Show Spinner or Loader
$.ajax({
url: ... ,
type: ... ,
data: ... ,
success: function (res) {
//Hide Spinner or Loader
},
error: function () {
//Hide Spinner or Loader
}
});