asp.net mvc模式弹出窗口

时间:2013-10-01 20:25:42

标签: asp.net-mvc-4 popup

我正在使用一个简单的模态弹出窗口。我的目标是将对话框的信息发送到另一个视图。 我的索引视图如下。

    <button id="modal-opener">Open</button>
<div id="dialog-modal">
    @using (Ajax.BeginForm("Index",new AjaxOptions{UpdateTargetId = "ID",HttpMethod = "Post",OnSuccess = "onSuccess"}))
    {
        <div>
            <fieldset>
                <legend>Acount Information</legend>
                <div id="editor-label">
                    @Html.LabelFor(a=>a.FirstName)
                </div>
                <div id="editor-field">
                    @Html.TextBoxFor(a=>a.FirstName)
                    @Html.ValidationMessageFor(a=>a.FirstName)
                </div>
                <div id="editor-label">
                    @Html.LabelFor(a=>a.LastName)
                </div>
                <div id="editor-field">
                    @Html.TextBoxFor(a=>a.LastName)
                    @Html.ValidationMessageFor(a=>a.LastName)
                </div>
                <p>
                    <input type="submit" value="submit"/>
                </p>
            </fieldset>

        </div>

    }
</div>

我的_Layout.cshtml如下:

 <script>
    $(function() {
        $("#dialog-modal").dialog({
            autoOpen: false,
            width: 300,
            height: 250,
            show: {
                effect: "blind",
                duration:1000
            },
            hide: {
                effect: "explode",
                duration:1000

            }
        });
        $("#modal-opener").click(function() {
            $("#dialog-modal").dialog("open");
        });

    });
    function onSuccess() {
        $("#dialog-modal").dialog("close");

    }
</script>

我的控制器在下面,所以我想将FirstName和LastName发送到详细信息视图

  public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(Person person)
    {
        return RedirectToAction("Details",person);
    }

    public ActionResult Details(Person person)
    {

        return View(person);
    }

1 个答案:

答案 0 :(得分:0)

如果您想要完全重定向而不是部分回发,则需要更改此行:

@using (Ajax.BeginForm("Index",new AjaxOptions{UpdateTargetId = "ID",HttpMethod = "Post",OnSuccess = "onSuccess"}))

进入

 @using(Html.BeginForm("Index"))

如果您只想对详细信息视图进行部分回发,请将索引上的操作更改为详细信息

@using (Ajax.BeginForm("Details",new AjaxOptions{UpdateTargetId = "ID",HttpMethod = "Post",OnSuccess = "onSuccess"}))

HTH