【问题标题】:C# ASP.NET MVC ajax Modal inside Modal hides onsuccess and failure only should onsuccess also refreshes first modal onsuccess模态中的 C# ASP.NET MVC ajax 模态隐藏 onsuccess 和失败仅当 onsuccess 也刷新第一个模态 onsuccess
【发布时间】:2020-01-27 18:44:49
【问题描述】:

我在 C# 和 ASP.NET MVC 中有一个 ajax 模态,我正在从另一个模态内部创建一个新对象。我有验证工作,但我的模式在它应该保持打开状态时消失(关闭)。

我在我的 ajax onsuccess 调用中有我的 .modal(‘hide’) 我也在 oncomplete 上尝试过它我只希望它在它无效时运行。同样,一旦完成并成功,我希望它使用新添加的数据刷新第一个模式。

<button type="button" class="btn btn-success" data-toggle="modal" data-target="#AddQuote">New Service Quote</button>

<!-- CREATE Service Quote -->
@using (Ajax.BeginForm("CreateServiceQuote", "Service", new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "ajaxCreate" }))
{
    <div class="modal" id="AddQuote" tabindex="-1" role="dialog" aria-labelledby="lblAjaxCreate" aria-hidden="true">
        <div class="modal-dialog" role="document" style="width:750px;">
            <div class="modal-content">
                <div class="modal-header">
                    <h3 class="modal-title text-center"><b>New Service Quote</b></h3>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body" id="ajaxCreate">
                    @Html.Partial("SQcreate")
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
                    <input type="submit" class="btn btn-success" value="Create Quote" />
                </div>
            </div>
        </div>
    </div>
}

<!-- CREATE CONTACT -->
@using(Ajax.BeginForm("CreateSQcontact", "Service", new AjaxOptions() { HttpMethod="POST", UpdateTargetId="ajaxContact", OnSuccess="contactSuccess" }))
{
    <div class="modal" id="AddSQcontact" tabindex="-1" role="dialog" aria-labelledby="lblAjaxContact" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h3 class="text-center"><b>Create Contact</b></h3>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body" id="ajaxContact">
                    @Html.Partial("SQcontact")
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
                    <input type="submit" class="btn btn-success" value="Create Contact" />
                </div>
            </div>
        </div>
    </div>
}

 <!— SQcreate has -->
 <button type="button" class="btn btn-info" id="btnSQopenCon" >New Contact</button>

    $("#btnSQopenCon").on("click", function () {
                $("#AddSQcontact").modal("show");
            })

    function contactSuccess() {
            $("#AddSQcontact").modal("hide");
    }

    public ActionResult SQcontact()
    {
        var model = new ServiceModel();
        return PartialView(model);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]      // KNOW WHICH CONTACT TABLE TO USE
    public ActionResult CreateSQcontact(ServiceModel model)
    {
        // Add Email Validation
        if (ModelState.IsValid)
        {
            int customerID = 0;
            // 1 way to remove all non numbers
            //Regex.Replace(oldString, "[^.0-9]", "");
            var numericPhone = new string(model.ServiceContact.ContactPhone.Where(char.IsNumber).ToArray());

            if (model.ServiceContact.ContactCustomer != null)
            {
                customerID = context.Customers
                                    .Where(c => c.Name == model.ServiceContact.ContactCustomer)
                                    .Select(x => x.ID).FirstOrDefault();
            }

            var contact = new Serv_Contacts()
                    {
                        Contact = model.ServiceContact.ContactName,
                        Phone = model.ServiceContact.ContactPhone,
                        PhoneNumeric = numericPhone,
                        Fax = model.ServiceContact.ContactFax,
                        Email = model.ServiceContact.ContactEmail,
                        SN2 = model.ServiceContact.ContactSN2,
                        CustomerID = customerID
                    };

            context.Serv_Contacts.Add(contact);
            context.SaveChanges();

            TempData["Success"] = "Contact added successfully!";
            ViewBag.ValidMessage = "Contact added successfully!";
            //string jsonstr = "contactsuccess";

            ModelState.Clear();
            //return PartialView("SQcreate", model);
            //return Json(jsonstr);
            return new EmptyResult();
        }

        LoadVSmodel(model);
        return PartialView("SQcontact", model);
    }

【问题讨论】:

    标签: c# ajax asp.net-mvc


    【解决方案1】:

    我最终遇到了 JavaScript 和 C# 错误。在开发工具中的“网络”选项卡中发现了这些错误。

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 2018-09-21
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多