مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

akbaraliyari

عضویت از 1394/11/20

مشکل کار با ajax در mvc

  • چهارشنبه 4 بهمن 1396
  • 20:44
تشکر میکنم

سلام
من یک ویو دارم که اطلاعات رو به صورت 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");
            }


        }

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 4 بهمن 1396
  • 22:18

کد ها را از طریق کلید کد قرار دهید

کاربر سایت

akbaraliyari

عضویت از 1394/11/20

  • پنجشنبه 5 بهمن 1396
  • 06:45
@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");
            }


        }

کاربر سایت

programeman

عضویت از 1396/11/05

  • پنجشنبه 5 بهمن 1396
  • 09:09

مشکل شما دقیقا چی هست؟

کاربر سایت

programeman

عضویت از 1396/11/05

  • پنجشنبه 5 بهمن 1396
  • 09:11
,
        error: function (response) {
            alert('eror');
        }

این رو بعد از  success بزارید . درواقع ارور وقتی داد سمت سرور اینجا میاد و میتونید مدیریت کنید

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 5 بهمن 1396
  • 09:18

درسته باید نشون بده

شما در کد هاون گفتید کار تمام شده اون پیغام رو نشون بده ، پروژه هم داره همین کار رو میکنه

اگر ثبت انجام نشد باید یک خطا ایجاد کنید

کاربر سایت

akbaraliyari

عضویت از 1394/11/20

  • پنجشنبه 5 بهمن 1396
  • 13:22

سلام.بله کد درست کار میکنه و در دیتابیس اطلاعاتم ذخیره میشه ولی چه ذخیره بشه و چه ذخیره نشه پیغام succcess رو نشون میده،ولی وقتی شرط رو از داخل اکشن برمیدارم درست میشه و پیغام های مناسب رو میده،  مشکل اینجاست که من با این شرط داخل اگشن چک میکنم که رکورد تکراری ذخیره نشه و درست هم کار میکنه ولی همین شرط باعث میشه که Ajax پیغام مناسب رو نشون نده.

به نظر شما چجوری میتونم داخل اکشن پیغام رو به ajax ارسال کنم؟؟شاید این طوری حل بشه

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)