0

我正在尝试创建一种方法,以便在单击提交按钮或链接时进行提交并保持在相同的模式对话框中。我的程序在同一个对话框中有两个表单,一个在提交第一个表单之前不显示,我希望在同一个对话框中提交第一个表单加载。

对于加载对话框,我有以下代码:

function loadDialog(tag, event, target) {
        event.preventDefault();
        var $loading = $('<img src="../../Content/assets/images/nivo-loader.gif" alt="loading" class="ui-loading-icon">');
        var $url = $(tag).attr('href');
        var $title = $(tag).attr('title');
        var $dialog = $('<div></div>');
        $dialog.empty();
        $dialog
        .append($loading)
        .load($url)
        .dialog({
            autoOpen: false
            , title: $title
            , width: 600
            , modal: true
            , minHeight: 200
            , show: 'fade'
            , hide: 'fade'
        });
});

然后在 Create.cshtml 中:

@model Mvcproject.Models.MyModel
<script language="javascript" type="text/javascript">
$(function () {
    $("input[type=submit]")
        .button(
        );
    $('a.modalDlg2').live("click", function (event) { loadDialog('#modalDlg', event, '#Receipt Create'); });

    /*$('input.Submit').live("click", function (event) {
        e.preventDefault();
        loadDialog('#modalDlg', event, '#Receipt Create');
    });*/

    $(".demo button").button({
        icons:
    {
        primary: 'ui-icon-plusthick'
    }
    });
});
</script>
<h2>
Add line</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)

<fieldset class="createReceipt">
    <legend>User login</legend>
    @if (ViewBag.Created)
    {
        <table class="createTable">
            <tr>
                <td rowspan="4">
                    <img src="../../Images/no_image.jpg" width="100" height="100" />
                </td>
                <th colspan="1">
                    @Html.LabelFor(model => model.User.Name)
                </th>
                <td colspan="5">
                    @Html.EditorFor(model => model.User.Name)
                    @Html.ValidationMessageFor(model => model.User.Name)
                </td>
            </tr>
            <tr>
                <th colspan="1">
                    @Html.LabelFor(model => model.User.Email)
                </th>
                <td colspan="5">
                    @Html.EditorFor(model => model.User.Email)
                    @Html.ValidationMessageFor(model => model.User.Email)
                </td>
            </tr>
            <tr>
                <th colspan="1">
                    @Html.LabelFor(model => model.User.Password)
                </th>
                <td colspan="5">
                    @Html.EditorFor(model => model.User.Password)
                    @Html.ValidationMessageFor(model => model.User.Password)
                </td>
            </tr>
            <!--User picture-->
            <tr>
                <td>
                    <input type="file" value="browse" name="Browse" accept="image/gif, image/jpeg, image/jpg" />
                </td>
            </tr>
        </table>
        <p>
            <input type="submit" class="Submit" value="Create" />
            <buttonreceipt style="width: 150px; text-align: left">@Html.ActionLink("Create", "Create")</buttonreceipt>
        </p>
    }
    else
    { 
        <!-- This will be displayed when user data is submited and inserted into database-->
        <table class="createTable">
            <tr>
                <th colspan="1">
                    @Html.LabelFor(model => model.User.Name)
                </th>
                <td colspan="5">
                    @Html.DisplayFor(model => model.User.Name)
                </td>
            </tr>
            <tr>
                <th colspan="1">
                    @Html.LabelFor(model => model.User.Email)
                </th>
                <td colspan="5">
                    @Html.DisplayFor(model => model.User.Email)
                </td>
            </tr>
            <tr>
                <td colspan="1">
                    <img src="@Model.User.Picture"/>
                </td>
            </tr>
        </table>
    }
</fieldset>        


}
@if (!ViewBag.Created)
{
    @Html.Partial("_AddUserInformation");
}

ViewBag.Created 是 false 还是 true,具体取决于用户数据是否已成功插入数据库以及该功能是否已完成。
_AddUserInformation.cshtml 为尝试注册的用户提供了其他信息,例如地址和国家/地区……
希望这能更好地解释我的问题。

4

1 回答 1

1

您可以使用 jQuery post() 函数将数据发送到地址。您需要使用 jQuery 选择器手动从字段中挑选数据(应该不难),并配置一个函数来接收和处理数据。帖子上的此链接应该为您提供入门所需的内容。http://api.jquery.com/jQuery.post/

于 2012-10-27T18:45:57.227 回答