C# ASP. NET MVC ajax Модал внутри Модал скрывает onsuccess и сбой только в случае, если при успешном выполнении также обновляется первый модальный успех - PullRequest
0 голосов
/ 27 января 2020

У меня есть ajax модальное в C# и ASP. NET MVC, где я создаю новый объект из другого модального модуля. У меня работает проверка, но мой модальный режим исчезает (закрывается), когда он должен оставаться открытым.

У меня есть .modal(‘hide’) в моем ajax onsuccess вызове. Я также попробовал его на oncomplete. Я хочу, чтобы он запускался только тогда, когда он недействителен. Также, как только это будет завершено и успешно, первый модальный, я хочу, чтобы он обновил sh с этими вновь добавленными данными.

<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);
    }

1 Ответ

0 голосов
/ 16 марта 2020

У меня закончились ошибки JavaScript и C#. Нашли эти ошибки с помощью вкладки «Сеть» в Dev Tools.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...