2

在我的布局视图中,我有

@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>

这将呈现一个按钮,该按钮创建一个对话框,其中呈现视图(创建)。一切正常。

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

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

浏览器将视图显示为一个整体。

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

4

2 回答 2

0

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

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


因此,在您的情况下,由于未处理提交,因此浏览器将视图作为一个整体显示,您应该改用 PopupForm

于 2014-12-07T17:08:38.413 回答
0

如果问题是您的视图正在获取围绕它的站点布局,您应该能够通过指定它是部分视图来避免这种情况:

return PartialView(newOffer);

更新

您需要使对话框中的按钮或表单由 JavaScript 处理程序拾取,该处理程序通过 AJAX 提交表单并将对话框内容替换为从服务器返回的内容。这是您如何做到这一点的一个示例。

于 2014-11-21T16:15:25.930 回答