在我的MVC应用程序的预订住宿我有以下几点:MVC验证多种形式
- 行动来显示所选择的房间与输入形式的额外信息GET:“详细信息” 这种观点有多种形式它,每个发布到不同的行动。
例子:
- 行动更新的客人POST数: “UpdateGuests”
- 行动选择开始日期POST: “SelectStartDate”
- 行动增加早餐POST:“AddBreakfast “
- 删除空间POST的操作:”RemoveProductFromCart“
- 进入下一步骤的操作POST:”继续“
大部分操作都将回重定向到GET:“详细信息”视图,如果需要的话用户可以执行其他操作,在该进行的情况下,这将重定向到下一个视图或有某种原因他们无法继续它将显示验证消息,为什么在“详细信息”视图。
我不确定处理验证的最佳方式,以下是我想到的一些选项。
- 使用的TempData []存储验证信息并重定向到“详细信息”查看我们添加任何TempData的错误,所以ModelState中。
- 在POST:“XXXXXX”行动填充的ModelState和渲染“详细信息”
这不是一个高容量的网站,以便TempData的是一个选项。
任何想法感激地欢迎。
编辑: 附加信息:
- 我使用DataAnnotations在一些地方的验证规则。
- 正在计划添加Ajax作为渐进式增强,但它应该没有工作。
重定向的好处是如果用户刷新它不会要求重新发布数据 – Myster 2009-09-08 21:43:56
我会给马丁一个答案,这是我现在要做的,但如果任何人有更好的主意我仍然可以从我看到此页面上改变我的主意;-) – Myster 2009-09-10 02:23:27