在mvc4模式中显示视图作为弹出窗口

时间:2013-08-28 03:13:19

标签: asp.net-mvc popup

我有一个使用Razor引擎渲染的视图,我需要打开一个按钮,单击一个弹出窗口以插入一个新用户(我已经获得了InsertUser的视图/控制器)

我想知道执行此操作的正确工作流程,如果我用jQuery打开它,如何在插入后关闭视图?我的控制器不知道它是在弹出窗口上我没有看到任何CloseResult作为ActionResult ...我也使用KendoUI,我已经看到它有Window控件....这也无济于事我这个......打开弹出窗口最好用什么?

由于

1 个答案:

答案 0 :(得分:1)

尝试阅读progressive enhancement上的这篇文章,虽然你可能不想进步,但文章包含了你需要做的所有小食谱。

你的行动将是这样的:

[HttpGet]
public ActionResult ContactUs()
{
     return PartialView("_ContactUs");
}

你的帖子是这样的:

[HttpPost]
public ActionResult ContactUs(ContactUsInput input)
{ 
    if (!ModelState.IsValid)
    { 
            return PartialView("_ContactUs", input);
    }       

    return PartialView("_ThanksForFeedback", input);
}

前端是这样的:

<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

<script type="text/javascript">

    $.ajaxSetup({ cache: false });

    $(document).ready(function () {
        $(".openDialog").live("click", function (e) {
            e.preventDefault();

            $("<div></div>")
                .addClass("dialog")
                .attr("id", $(this).attr("data-dialog-id"))
                .appendTo("body")
                .dialog({
                    title: $(this).attr("data-dialog-title"),
                    close: function () { $(this).remove() },
                    modal: true
                })
                .load(this.href);
        });

        $(".close").live("click", function (e) {
            e.preventDefault();
            $(this).closest(".dialog").dialog("close");
        });
    });
</script>

<a class="openDialog" data-dialog-id="emailDialog"
 data-dialog-title="Contact Us" href="/Home/ContactUs">Contact Us</a>
相关问题