سلام
من یک ویو دارم که اطلاعات رو به صورت ajax به کنترلر ارسال میکنم.داده ارسالی در دیتابیس ثبت می شود،ولی چه ذخیره بشود و چه ذخیره نشود تابع ajax من فقط پیام ذخیره شد رو به من نشون میده اما موقعی که شرط رو از اکشن برمیدارم درست میشود،من به اون شرط نیاز دارم
کد من:
@using (Ajax.BeginForm("AddNewName", "CPanel", null, new AjaxOptions { HttpMethod = "POST", OnSuccess = "SuccessAfrad", OnFailure = "FailureAfrad" }))
{
<input type="hidden" name="ShakhsId" value="@afrad.ShakhsID" />
<input type="hidden" name="ProgramId" value="@ViewBag.pid" />
<input type="hidden" name="MemberId" value="@Convert.ToInt32(afrad.PersonnelID)" />
<input type="hidden" name="OnvanProgram" value="@ViewBag.onvan" />
<input type="hidden" name="Type" value="@ViewBag.type" />
<input type="hidden" name="Name" value="@afrad.Name" />
<input type="hidden" name="NameKhanevadegi" value="@afrad.NameKhanevadegi" />
<input type="hidden" name="Semat" value="@afrad.OnvanShoghl" />
<input type="hidden" name="Mahal" value="@afrad.MahalKhedmat" />
<input type="hidden" name="AddressSokoonat" value="@ViewBag.city" />
<input type="hidden" name="CreateUserId" value="@Convert.ToInt32(Session["ID"])" />
<input type="hidden" name="CreateDate" value="@str" />
<button type="submit" class="btn btn-info">
<span class="glyphicon glyphicon-save"></span>
???
</button>
}
<script>
function SuccessAfrad() {
alert("ذخیره شد");
}
function FailureAfrad() {
alert("ذخیره نشد");
}
</script>
[HttpPost]
public ActionResult AddNewName(int ShakhsId, int ProgramId, string OnvanProgram, int Type, long MemberId, string Name, string NameKhanevadegi, string Semat, int Mahal, string AddressSokoonat, int CreateUserId)
{
var q = db_farahangi.Ashkhas.Where(x => x.ShakhsId == ShakhsId && x.ProgramId == ProgramId);
if (q.Count() == 0)
{
Ashkhas ashkhas = new Ashkhas();
ashkhas.ShakhsId = ShakhsId;
ashkhas.ProgramId = ProgramId;
ashkhas.OnvanProgram = OnvanProgram;
ashkhas.Type = Type;
ashkhas.MemberId = MemberId;
ashkhas.Name = Name;
ashkhas.NameKhanevadegi = NameKhanevadegi;
ashkhas.Semat = Semat;
ashkhas.Mahal = Mahal;
ashkhas.Pasokhnameh = false;
ashkhas.Wins = false;
ashkhas.AddressSokoonat = AddressSokoonat;
ashkhas.CreateUserId = CreateUserId;
ashkhas.CreateDate = Convert.ToDateTime(DateTime.Now);
db_farahangi.Ashkhas.Add(ashkhas);
db_farahangi.SaveChanges();
return RedirectToAction("tree");
}
else
{
return RedirectToAction("tree");
}
}
کد ها را از طریق کلید کد قرار دهید
@using (Ajax.BeginForm("AddNewName", "CPanel", null, new AjaxOptions { HttpMethod = "POST", OnSuccess = "SuccessAfrad", OnFailure = "FailureAfrad" })) { <input type="hidden" name="ShakhsId" value="@afrad.ShakhsID" /> <input type="hidden" name="ProgramId" value="@ViewBag.pid" /> <input type="hidden" name="MemberId" value="@Convert.ToInt32(afrad.PersonnelID)" /> <input type="hidden" name="OnvanProgram" value="@ViewBag.onvan" /> <input type="hidden" name="Type" value="@ViewBag.type" /> <input type="hidden" name="Name" value="@afrad.Name" /> <input type="hidden" name="NameKhanevadegi" value="@afrad.NameKhanevadegi" /> <input type="hidden" name="Semat" value="@afrad.OnvanShoghl" /> <input type="hidden" name="Mahal" value="@afrad.MahalKhedmat" /> <input type="hidden" name="AddressSokoonat" value="@ViewBag.city" /> <input type="hidden" name="CreateUserId" value="@Convert.ToInt32(Session["ID"])" /> <input type="hidden" name="CreateDate" value="@str" /> <button type="submit" class="btn btn-info"> <span class="glyphicon glyphicon-save"></span> ثبت </button> }
<script> function SuccessAfrad() { alert("ذخیره شد"); } function FailureAfrad() { alert("ذخیره نشد"); } </script>
[HttpPost] public ActionResult AddNewName(int ShakhsId, int ProgramId, string OnvanProgram, int Type, long MemberId, string Name, string NameKhanevadegi, string Semat, int Mahal, string AddressSokoonat, int CreateUserId) { var q = db_farahangi.Ashkhas.Where(x => x.ShakhsId == ShakhsId && x.ProgramId == ProgramId); if (q.Count() == 0) { Ashkhas ashkhas = new Ashkhas(); ashkhas.ShakhsId = ShakhsId; ashkhas.ProgramId = ProgramId; ashkhas.OnvanProgram = OnvanProgram; ashkhas.Type = Type; ashkhas.MemberId = MemberId; ashkhas.Name = Name; ashkhas.NameKhanevadegi = NameKhanevadegi; ashkhas.Semat = Semat; ashkhas.Mahal = Mahal; ashkhas.Pasokhnameh = false; ashkhas.Wins = false; ashkhas.AddressSokoonat = AddressSokoonat; ashkhas.CreateUserId = CreateUserId; ashkhas.CreateDate = Convert.ToDateTime(DateTime.Now); db_farahangi.Ashkhas.Add(ashkhas); db_farahangi.SaveChanges(); return RedirectToAction("tree"); } else { return RedirectToAction("tree"); } }
مشکل شما دقیقا چی هست؟
, error: function (response) { alert('eror'); }
این رو بعد از success بزارید . درواقع ارور وقتی داد سمت سرور اینجا میاد و میتونید مدیریت کنید
درسته باید نشون بده
شما در کد هاون گفتید کار تمام شده اون پیغام رو نشون بده ، پروژه هم داره همین کار رو میکنه
اگر ثبت انجام نشد باید یک خطا ایجاد کنید
سلام.بله کد درست کار میکنه و در دیتابیس اطلاعاتم ذخیره میشه ولی چه ذخیره بشه و چه ذخیره نشه پیغام succcess رو نشون میده،ولی وقتی شرط رو از داخل اکشن برمیدارم درست میشه و پیغام های مناسب رو میده، مشکل اینجاست که من با این شرط داخل اگشن چک میکنم که رکورد تکراری ذخیره نشه و درست هم کار میکنه ولی همین شرط باعث میشه که Ajax پیغام مناسب رو نشون نده.
به نظر شما چجوری میتونم داخل اکشن پیغام رو به ajax ارسال کنم؟؟شاید این طوری حل بشه
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)