MVC: модальное окно исчезает после httppost - PullRequest
0 голосов
/ 28 октября 2019

У меня открыто модальное окно с настройкой формы mvc в модальном окне. Затем у меня есть настройка кнопки «Отправить» JavaScript. Когда пользователь нажимает кнопку отправить, данные сохраняются в базу данных правильно, ОДНАКО ... Я просто хочу, чтобы пользователь оставался в открытом диалоговом окне после сохранения. Вместо этого, пользователь перенаправляется в полное окно браузера, ТОЛЬКО URL ссылки для формы ("http://localhost:55263/ClaimOrders/ClaimOrder"). Модальное окно пропало. Все, что я хочу, это сохранить мои данные и вернуть сообщение модальному всплывающему окну, которое в основномговорит: «Данные сохранены». Больше ничего. Никаких переадресаций.

В моем контроллере я пробовал и PartialViewResult & ActionResult с [httppost], но безуспешно с любым из них. Любая идея, что яне так?

Вот сокращенная версия моего кода:

Вид :

<div>
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "claimOrderForm" }))
 {
  <div id="claim-order" class="standard-bubble" style="margin: 0">
    <fieldset>
        <legend>Section 1</legend>
        <div class="row">
            <div class="indent-large-header">
                Diagnosis:
            </div>
            <div class="indent-content">
                @Html.TextBoxFor(m => m.ClaimOrderCasePrep.Diagnosis)
            </div>
        </div>
    </fieldset>
 </div>
 @Html.HiddenFor(m => m.ClaimOrder.ClaimOrderId, new { @class = "ClaimOrderId", @id = "ClaimOrderId" })
 }
 </div>

Контроллер

[HttpPost]
    public ActionResult ClaimOrder(ClaimOrderViewModel model)
    {            
        int claimOrderId;
        int.TryParse(Request.Form["ClaimOrder.ClaimOrderId"], out claimOrderId);



        model.ClaimOrderId = claimOrderId;

        //save data here

        string json = "";
        var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
        json =
            JsonConvert.SerializeObject(
                new
                {
                    claimOrderId = model.ClaimOrderCasePrep.ClaimOrderId                    }, Formatting.Indented, jsonSerializerSettings);
        return Content(json, "application/json");
    }

Javascript Submit

ClaimOrder.prototype.post = function () {
var container = claimOrder.findDialogContainer().find("#claimOrderContainer");
$('#ClaimOrderId').val(container.find(".ClaimOrderId").val());

$("#claimOrderForm").submit();
 };

Как я уже сказал, он проходит через HttpPost и сохраняет нормально, но затем перенаправляет на исходный URL ("http://localhost:55263/ClaimOrders/ClaimOrder"). Я также попробовал PartialViewResult со следующей строкой возврата, но не повезло:

return PartialView("ClaimOrder", model);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...