我正在考虑创建一个允许基于ajax的搜索和编辑功能的视图。我将不胜感激任何有关我正在考虑的结构的反馈!
结构将包括 文本框和搜索按钮 提交按钮会导致触发操作搜索,并返回部分 - 在命名div“itemDisplay ##”中找到的项目的文本表示(##是找到的项目的ID) - 名为edit的按钮 - 占位符div,其id为找到的项“itemEdit ##” 当用户点击编辑按钮时,会请求部分视图(Edit.ascx)并填充命名的div itemEdit ## Edit.ascx具有“保存”和“取消”按钮。
成功保存并取消隐藏编辑div并显示原始项目显示## 保存期间的失败显示在edit.ascx中。
答案 0 :(得分:2)
这些听起来像离散的动作,因此在它的实现中并不特别RESTful。通常我会有一个带过滤的List动作 - 这个过滤可以通过AJAX完成,因为它返回的内容基本上是相同的视图。单击特定项目可能会带我进入详细信息视图 - 使用编辑按钮。我可能还会在列表中包含一个编辑按钮,在这种情况下单击它会将我带到编辑模式下的详细信息页面。但是,列表,视图和编辑都是不同的操作,并且具有不同的URL。单击“查看”或“编辑”中的列表按钮将返回“列表”操作。单击“编辑”中的“保存”按钮会将我返回到该项目的视图 - 这可以确认项目已更新。 “编辑”中的错误会使用适当的消息呈现编辑视图。
我的经验法则是在视图的上下文不更改时使用AJAX,而在调用新操作(新上下文)时使用完整请求(GET / POST)。这有助于保持接口(URL)RESTful。当然,您可以以任何您想要的方式执行此操作,但MVC使RESTful URL变得更容易,而RESTful URL使用户可以更轻松地为页面添加书签以轻松返回 - 正是因为它们映射到特定的操作特定数据项。
答案 1 :(得分:0)
可以按照您描述的'ajax方式'进行搜索。使用相同的网址/页面进行编辑和显示详细信息会使代码混乱,并且正如另一个答案所述并不是非常安静,所以我会使用单独的URL和页面。