代码之家  ›  专栏  ›  技术社区  ›  Mike Roosa

如何在ASP.NET MVC的向导样式页中重新填充所有内容?

  •  0
  • Mike Roosa  · 技术社区  · 16 年前

    我有一个页面在我们的服务台系统中创建了一张罚单。它充当向导,步骤如下:

    步骤1

    用户从下拉列表中选择客户。有一个jquery onchange事件激发并生成步骤2的列表,隐藏步骤1 div并显示步骤2 div。

    步骤2

    用户从下拉列表中选择位置。这是根据在步骤1中选择的客户生成的。有一个jquery onchange事件激发并生成步骤3的列表,隐藏步骤2 div并显示步骤3 div。

    步骤3

    用户从下拉列表中选择类型,并将文本输入到3个不同的文本框中。如果用户未能输入文本或输入无效文本,则我的控制器将模型状态更改为无效并返回视图。

    我怎样才能让所有的下拉菜单重新填充用户选择的正确选项,并让页面在步骤3中重新显示?

    我的第一个想法是使用ajax,当用户单击create按钮时,我可以从那里创建票据,如果成功,则将它们发送到票据详细信息。如果不成功,只要显示一个错误信息,我仍然在页面上,所以没有什么大不了的。既然我写出来了,我想这是最好的。使用ajax有什么主要问题吗?现在大多数网站似乎都在使用某种类型的javascript或ajax。

    第二个想法是根本不使用ajax,而是将所有页面提交给服务器。

    你有什么建议?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Mathias F    16 年前

    这三个步骤显示完全不同的标记。 通过ajax版本,除了在更改步骤时避免页面闪烁之外,可能没有什么好处。

    如果采用非ajax方式,您将获得:

    • 不错的可书签链接(www.ticketsystem.com/customer->www.ticketsystem.com/customer/microsoft/->www.ticketsystem.com/customer/microsoft/location->www.ticketsystem.com/customer/microsoft/location/redmond)
    • 浏览器历史作品
    • 更容易测试

    要在步骤3之后重新显示列表,您需要加载所有列表并根据url中的参数设置所选项目。

        2
  •  0
  •   Al W    16 年前

    我同意你的看法。使用ajax提交票据。