如果ModelState.IsValid返回true,则在jquery.dialog中加载部分视图

时间:2012-08-10 15:09:47

标签: jquery asp.net-mvc

在我的jquery中,我可以调用Post动作。我的问题是,如果ModelState.IsValid返回true,则部分视图将在jquery.dialog中加载。 我该怎么办呢?从过去的4天一直在挣扎。请帮忙。

这是我的代码。 我的帖子如下:

[HttpPost]
        public ActionResult Add(MyModel mj)
        {
            if (ModelState.IsValid)
            {
        mj.Id = mj.ModifyJob();
            }
            else
            {
                return new JsonResult() { Data = "error" };
            }
            return View(mj);
        }

Jquery如下:

<script type="text/javascript">
       $(function () {
           $('#new-value-link').click(function () {
               $.post('<%: Url.Action("Add","MyController") %>',
                $('#addform').serialize(),
                function (data) {
                    success(data);
                });     
               return false;
           });
       });
       function success(data) {
           if (data != "error") {
               var href = this.href;
               $('#dialog').dialog({
                   modal: true,
                   height: 700,
                   width: 900,
                   open: function (event, ui) {
                       $(this).load(href, function (result) {
                            $('#Preview-form').submit(function () {
                                $.ajax({
                                    url: this.action,
                                    type: this.method,
                                    data: $(this).serialize(),
                                    success: function (json) {
                                        $('#dialog').dialog('close');
                                        window.location = json.redirectTo;
                                    }
                                });
                                return false;
                            });
                       });
                   }
               });
           }
           else {
               alert('hi');
           }
           return;
       }

1 个答案:

答案 0 :(得分:0)

你应该返回

return new ContentResult("error");