【发布时间】:2011-01-15 10:54:41
【问题描述】:
我想在 asp.net 中设计一个向导风格的表单。点击下一步做某事。
表格有3个步骤
填写您的信息
在此处添加元素[如果您输入错误,则可以在进入下一步之前编辑或删除它们]
完成
在 ASP.NET MVC 中使用 ajax 进行设计的最佳实践是什么。
有没有人告诉我我可以在 MVC 中使用的最佳方法
【问题讨论】:
标签: c# asp.net-mvc webforms wizard formwizard
我想在 asp.net 中设计一个向导风格的表单。点击下一步做某事。
表格有3个步骤
填写您的信息
在此处添加元素[如果您输入错误,则可以在进入下一步之前编辑或删除它们]
完成
在 ASP.NET MVC 中使用 ajax 进行设计的最佳实践是什么。
有没有人告诉我我可以在 MVC 中使用的最佳方法
【问题讨论】:
标签: c# asp.net-mvc webforms wizard formwizard
您可以这样做:向导的每个步骤的元素都可以放入一个单独的 div 中。 Next 和 Previous 按钮将显示/隐藏相应的 div。在最后一步会有一个提交按钮,它将整个表单发送到服务器。
您还可以查看jquery form wizard plugin。
【讨论】:
我实现向导的方法之一是拥有一个单独的数据库表,其中包含您在向导的每个步骤中存储和保存/检索数据到该表所需的所有信息 - 显然取决于向导的大小和目的这可能与数据库调用的数量不相符,但我只实现了一个 5 页向导,每页最多有 5-10 个字段。因此,当您登陆一个页面时,您可以查询数据库并从数据库中检索信息,或者如果它不存在,则加载一个空白页面,用户可以在其中输入信息,并在单击“下一步”或“上一个”时保存。
为了在页面之间导航,我只是构建了一个辅助类,它接受页面名称和按钮类型(下一个/上一个),并有一个简单的 switch 语句,它将返回要导航到的页面,然后在 RedirectToAction 语句中使用它。同样,这可能不适合更大的应用程序,但您也可以考虑使用 Windows Workflow(在本文http://www.devx.com/dotnet/Article/29992 中涉及),因为我知道它可用于创建向导样式的应用程序。
【讨论】:
这不是一个特别的 MVC 解决方案,但我建议使用 JQuery LightBox 进行客户端实现。
【讨论】:
$('#gallery div').lightBox() 而不是$('#gallery a').lightBox(),其中每个 div 都包含表单元素,最后,您将获得提交按钮。所有这些 DIV 都是页面内的隐藏元素,只能通过 LightBox 访问。
你不需要任何客户端的东西来实现这一点,除了用户方便之外,使用 javascript 也是一种不好的做法。
你有 2 个 wisard 问题:
1:保持状态。即在请求之间保存数据。
2:确定要采取的行动(通常是下一个或上一个)。
保持状态。
您可以使用会话对象,但理想情况下(因此您可以对它们进行单元测试)所有操作都应该是纯函数。我使用隐藏输入来保存请求之间的数据。
用户操作。
用于下一个/上一个视图。在表单中添加 2 个提交按钮并为其命名。当你 发布表单,具有无空值的按钮是按下的按钮。然后重定向到适当的操作。
【讨论】: