在我的布局视图中,我有
@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);
浏览器显示整个视图。
如何将视图返回到打开的对话框?
答案 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