ارجاع به view از طریق ajax بعداز ویرایش
سلام
من ajax زیر را نوشته ام
<script>
$(function() {
$("#Save").on('click',
function() {
var dataObject = {
ContactUsId: $("#ContactUsId").val(),
ContacUsPreson: $("#ContacUsPreson").val(),
ContacUsNo: $("#ContacUsNo").val(),
CountryId: $("#CountryId").val(),
StatesId: $("#StatesId").val()
};
$.ajax({
url: '@Url.Action("Edit", "TestOne")',
data: dataObject,
type: "Post",
success: function (data) {
alert(2);
}
});
});
});
</script>
و کنترلر هم بصورت زیر نوشته ام
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(ContactU contactU)
{
if (ModelState.IsValid)
{
db.Entry(contactU).State = EntityState.Modified;
db.SaveChanges();
return Json("true", JsonRequestBehavior.AllowGet);
}
return View(contactU);
}
اما وقتی عمل ویرایش انجام میشود alert(2); را نشان نمی دهد
کنترلر و ajax را چگونه باید تغییر بدهم که بتوانم از طریق ajax به صفحه Index بروم
نقل قول: ارجاع به view از طریق ajax بعداز ویرایش
سلام
مهندس این هم کد ویو مربوطه است
@model ModalTextErrorValidation.Models.ContactU
@{
Layout = null;
}
<h2>Edit</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>ContactU</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.ContactUsId)
<div class="form-group">
@Html.LabelFor(model => model.ContacUsPreson, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.ContacUsPreson, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.ContacUsPreson, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.ContacUsNo, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.ContacUsNo, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.ContacUsNo, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CountryId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CountryId, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CountryId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.StatesId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.StatesId, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.StatesId, "", new { @class = "text-danger" })
</div>
</div>
</div>
<div class="col-lg-6">
<button id='Save' type="submit" class="btn btn-success rounded float-md-right">
<span class="ml-lg-1">Save</span>
</button>
</div>
}
<div class="col-lg-6">
<button id='Back' class="btn btn-success rounded float-md-left">
<span class="ml-lg-1">Back</span>
</button>
</div>
@Scripts.Render("~/bundles/jqueryval")
لطفا بگویید چگونه می توانم وقتی عملیات ویرایش با موفقیت انجام شد
وارد قسمت success ajax مربوطه شوم نه وارد صفحه json
لطفا راهنمای بفرمایید
نقل قول: ارجاع به view از طریق ajax بعداز ویرایش
سلام
فهمیدم مشکل بخاطر اینکه دکمه ویرایش داخل
@using (Html.BeginForm())
قرار داره وقتی دکمه را بیرون
@using (Html.BeginForm())
قرار می دهم درست کارمیکند عمل ویرایش
اما مشکلی که داره اینه که ولیدیشن ارورها دیگه کار نمیکنه برای حل این مشکل باید چکارکنم
نقل قول: ارجاع به view از طریق ajax بعداز ویرایش
سلام وقتی از ajax استفاده میکنید validation ها از کار میوفته که با استفاده از jqueryvalidation میتونید انجامش بدید
من یه همچین کدی استفاده کردم
$("#buy").validate({ rules: {
FactorEmail: {
required: false,
email: true
},
Link: {
required: true
},
SelectedService: {
required: true,
range: [1, 999999]
},
SelectedShabake: {
required: true,
range: [1, 999999]
},
SelectedMahsul: {
required: true,
range: [1, 999999]
},
FactorPhoneNumber: {
required: false,
}
}
});
کد HTML:
<select id="SelectedShabake" name="SelectedShabake" required data-msg="شبکه مورد نظر خود را انتخاب کنید" class="form-control"> <input class="form-control text-left ltr text-box single-line" id="FactorEmail" data-msg-email="ایمیل صحیح نیست" name="FactorEmail" type="email" value="">
سورس هاش :
کد HTML:
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>