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

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

کاربر سایت

navidsoft

عضویت از 1393/06/13

مدیریت بیش از یک Submit در کنترلر

  • دوشنبه 4 آبان 1394
  • 14:24
تشکر میکنم

سلام. سه دگمه Submit روی view من به حالت Partial هستند.

کد View بصورت زیر می باشد

<div style="display:@ViewBag.modeNew">
    <div class="alert alert-warning">
             @*@Html.Partial("Create", new Project_Model.DT.Behavior())*@
        @{Html.RenderAction("Create", "Behavior", "Index");}
    </div>
</div>
<div style="display:@ViewBag.modeEdit">
    <div class="alert alert-warning">
        @{Html.RenderAction("Edit", "Behavior", "Index");}
    </div>
</div>
<div style="display:@ViewBag.modeDel">
    <div class="alert alert-warning">
        @{Html.RenderAction("Delete", "Behavior", "Index");}
    </div>
</div>

 

کد سمت کنترلر بصورت زیر می باشد


        [HttpPost]
        public ActionResult Create(Project_Model.DT.Behavior modelObj)
        {
            Project_Controller.Class_Controller.Behavior_DT db = new Project_Controller.Class_Controller.Behavior_DT();

            if (Request.Form.AllKeys.Contains("Command"))
            {
                if (Request.Form["Command"] == "Create")
                {
                    string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ProjectDataContext"].ConnectionString;
                    SqlConnection conn = new SqlConnection(connectionString);
                    SqlCommand cmd = new SqlCommand("Behavior_InsertCheck", conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Caption", modelObj.Caption);

                    int SavedCount = 0;
                    SqlDataReader dr;
                    try
                    {
                        conn.Open();
                        dr = cmd.ExecuteReader();

                        while (dr.Read())  // Check the Caption in Stored Procedure to prevent repeated data
                        {
                            SavedCount = Convert.ToInt32(dr["Caption"]);
                        }
                        if (SavedCount == 0)
                        {
                            if (ModelState.IsValid)
                            {
                                db.Create_Behavior(modelObj);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        ex.ToString();
                        //return View();
                    }
                    finally
                    {
                        if (conn.State == ConnectionState.Open)
                            conn.Close();
                        conn.Dispose();
                        cmd.Dispose();
                    }
                }
                if (Request.Form["Command"] == "Edit")
                {
                    if (ModelState.IsValid)
                    {
                        db.Edit_Behavior_Post(modelObj);
                    }
                }
                if (Request.Form["Command"] == "Delete")
                {
                    db.Delete_Behavior_Post(modelObj);
                }
            }
            return View();

            //return View("Index");
            //return View("Index", db.Index());
            //return RedirectToAction("Index");
        }

 

مشکل به اینصورت است که اکشن من به حالت بینهایت پس از انجام صحیح کار ، تکرار می شود و برنامه از کار میوفتد.

با تشکر از کمک شما

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

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

ایمان مدائنی

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

  • دوشنبه 4 آبان 1394
  • 14:33

یک نمونه پروژه ضمیمه کنید تا بتونم تست کنم و مشکل رو پیدا کنم

کاربر سایت

navidsoft

عضویت از 1393/06/13

  • دوشنبه 4 آبان 1394
  • 15:02

با سلام. فایل ضمیمه که کنترلر مربوط به behavior با مشکل برخورد کرده است.  به دلیل حجیم شدن فایل کلیه فایلهای رفرنس حذف شد تا ارسال نمونه با مشکل مواجه نشود

فایل های ضمیمه

کاربر سایت

navidsoft

عضویت از 1393/06/13

  • دوشنبه 4 آبان 1394
  • 16:08

یافتم. ممنونم

فقط باید در قسمت view کد زیر را اضافه می کردم

@if (IsPost)
{
    <div>
        @{ Response.RedirectToRoute(routeName: "Default");}
    </div>
}

 

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

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

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

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