MVC返回视图到对话框

时间:2014-11-21 16:10:10

标签: jquery asp.net-mvc asp.net-mvc-5 asp.net-mvc-awesome

在我的布局视图中,我有

@Html.MakePopup(new MakePopupParams
    {
        Action = "Create",
        Title = "New Job Offer",
        Modal = true,
        Resizable = false,
        Height = 450,
        Width = 750,
        Position = "center"
    })

    <div style="padding-left: 10px">
        @Html.PopupActionLink(new PopupActionLinkParams
        {
            Action = "Create",
            Text = "Add new Job Offer",
            HtmlAttributes = new { @class = "btn btn-success btn-small" }
        })
    </div>

这将呈现一个按钮,用于创建一个呈现视图(Create)的对话框。 一切正常。

问题是当我提交表单时,如果ModelState无效,我想返回视图,模型和验证消息。 但是如果我像这样返回视图

// there is something wrong with the data values
            return View(newOffer);

浏览器显示整个视图。

如何将视图返回到打开的对话框?

2 个答案:

答案 0 :(得分:0)

如果问题是您的视图正在围绕它进行网站布局,那么您应该可以通过指定它是部分视图来避免这种情况:

return PartialView(newOffer);

更新

您需要让对话框中的按钮或表单由JavaScript处理程序选取,该处理程序通过AJAX执行表单提交,并使用从服务器返回的内容替换对话框内容。 Here's one example你如何做到这一点。

答案 1 :(得分:0)

您正在使用仅创建弹出框的Popup助手, PopupForm创建一个处理表单提交的弹出窗口,还添加一个Ok和Cancel按钮

http://awesome.codeplex.com/wikipage?title=PopupForm


所以在你的情况下,浏览器整体显示视图,因为提交没有处理,你应该使用PopupForm