0

我正在将 a 加载PartialView到 aJquery UI dialog中,如果在post method我重新加载PartialView到对话框中时出现问题(ModelState例如错误)。在这一点上,我的 ajax sumbit 不再起作用了。它只是重定向我,它不应该。

我的代码有什么问题?这是我尝试过的:

$('#editdialog').dialog({
        autoOpen: false,
        width: '900px',
        modal: true,
        open: function (event, ui) {
            $(this).load('Controller action', function (html) {
                $('#incarcerationForm').submit(function () {
                    $.ajax({
                        url: 'Controller action',
                        data: $("#myForm").serialize(),
                        type: "POST",
                        success: function (data) {
                            $('#editdialog').html(data);

                            $.validator.unobtrusive.parse($("#myForm"));

                            if ($("#myForm").valid()) {
                                GetDetails(@Model.FormModel.ID);
                                $('#editdialog').dialog('close');
                                console.log("myForm was edited successfully");
                                return false;
                            }

                            return false;

                        },
                        error: function (data) {
                            $('#editdialog').html(data);
                            console.log("error at edit myForm");
                            return false;
                        }
                    });
                    return false;
                });
                return false;
            });
        }

    });

我的[HttpPost] Controller行动:

  public ActionResult Create(Mymodel viewModel)
    {   
         return CheckValidBusiness(() => 
           { 
             viewModel.Save(viewModel.FormModel); return true; 
           })
        .Valid(() => PartialView(viewModel))
        .Invalid(() => PartialView(viewModel));

    }
4

1 回答 1

1

代替:

$('#incarcerationForm').submit(function () {

和:

$(document).on('submit', '#incarcerationForm', function () {

这样您就可以以活泼的方式订阅表单的提交事件,这将对 DOM 更改具有弹性。查看该.on()方法以获取更多信息。

于 2013-02-22T15:14:00.907 回答