如何在对话框()模式弹出窗口中保持部分视图之间的字段数据

时间:2012-05-14 20:03:52

标签: c# javascript jquery model-view-controller jquery-ui

在我的应用程序中创建新用户时,我正在显示一个JQuery模式弹出窗口(.dialog()),其中包含一个部分视图,其中三个子部分视图显示为制表符。

选项卡内容(部分视图)被加载到模态弹出窗口内,其中Ajax调用只是替换为

用于呈现标签内容的Javascript:

        $.post('@Url.Action("AddUserEducation","User")', { id: userId},
        function(data) {
            $("#education").show().html(data);
           }

ActionMethod:

    public PartialViewResult AddUserEducation(Guid id)
    {
            var userEducation = new UserEducation();
            var user = GetUserFromRepository(id);
            userEducation.User = User;

            return PartialView("UserEducation", userEducation);
    }

用户局部视图将显示选项卡:

<div id="details"></div>
<div id="education"></div>
<div id="employment"></div>

所以每次切换标签时,另一个部分视图都会被加载到弹出式Div。

切换标签时,我想不出保存数据的好方法。

每次切换标签时,都会调用一个Action方法来使用标签内容html填充div,并且我放弃了已输入的所有内容。

先谢谢你们!如有任何问题,请随时提出。

额外信息:

模型:对于父弹出窗口,我有一个“用户”模型,然后我将其UserDetails,UserEducation和UserEmployment传递给三个部分视图选项卡:用户详细信息,用户教育,用户就业。

如何让用户在不丢失数据的情况下自由浏览选项卡,以便在完成后只需保存用户模型并保存三个连接的实体,而不会丢失任何数据。

P.S。我没有使用jquery选项卡控件,因为我不需要。

1 个答案:

答案 0 :(得分:1)

您应该将此部分视图一次性加载到弹出窗口中。我的意思是所有3个标签选项卡的所有内容。显示更多代码以获得更好的解决方案,尤其是Javascript部分。