【问题标题】:Retain data from views while navigating through multiple views in ASP.NET MVC App在 ASP.NET MVC 应用程序中导航多个视图时保留视图中的数据
【发布时间】:2013-02-26 04:34:40
【问题描述】:

我的 ASP.NET MVC 应用程序中有 5 个视图。从这些视图中捕获了一些数据,我正在使用 2 个按钮浏览这些视图:上一个和下一个按钮。

所以我在视图 1 中填写数据,然后转到视图 2 并在那里输入数据,依此类推......直到视图 5。

现在的问题是:如果我再次回到以前的视图,如何保留在该特定视图中输入的数据。

另外,我想一次提交来自所有 5 个视图的数据,一旦我完成向所有 5 个视图输入数据。

最好的方法是什么?

【问题讨论】:

    标签: asp.net asp.net-mvc views retain


    【解决方案1】:

    我可以想到多种方法来解决您的问题。您可以创建具有多个“面板”的单个视图,这些面板根据您在流程中所处的步骤隐藏或显示,例如向导控件。您可以尝试使用 cookie,但这不是很干净。理想情况下,您接受 MVC 模式的无状态以及 View 是 Model 的视图这一事实,并在每个页面回发到 Controller 时更新您的 Model,并在页面之间保持 Model(无论您选择如何)。

    如果您不想在流程完成之前保留任何内容,那么简单性可能会导致我建议使用“向导”方法。我确信 jQuery 可以帮助你解决这个问题。

    【讨论】:

    • 如果将所有表单放在一个视图上是可以接受的,并且您使用的是 jQuery,我强烈建议您检查一下:jankoatwarpspeed.com/post/2009/09/28/webform-wizard-jquery.aspx
    • 您能否在“您在页面之间保留模型(无论您选择如何)”上进一步探索先生一旦我更新了一个视图的模型,我如何从模型中取回我的数据?
    • 当你从一个页面移动到另一个页面时,你可以通过使用 Html.ActionLink 辅助方法来构造一个链接,该链接将唯一引用(可能是模型中当前记录的记录键)传递给下一页,即 Html.ActionLink("page2", id = Model.ID)。使用通常在 Visual Studio 中的新 MVC 项目中找到的基本路由,您将拥有涵盖上述示例的 Controller/Action/ID 路径。我不能推荐 Steven Sanderson 关于 ASP.NET MVC 的书 (apress.com/book/view/1430210079)
    【解决方案2】:

    如果您只想在所有页面都填满后提交内容,您可能需要将输入的数据存储到客户端计算机上的 cookie 中。你可以用javascript做到这一点:

    http://www.quirksmode.org/js/cookies.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      相关资源
      最近更新 更多