1

我正在考虑创建一个允许基于 ajax 的搜索和编辑功能的视图。我将不胜感激有关我正在考虑的结构的任何反馈!

该结构将由一个文本框和一个搜索按钮组成 按钮的提交导致操作搜索被点击,并返回一个部分 - 在命名 div “itemDisplay##” 中找到的项目的文本表示(## 是 Id找到的项目) - 名为编辑的按钮 - 占位符 div 与找到的项目的 id “itemEdit##” 当用户点击编辑按钮时,会请求一个局部视图 (Edit.ascx) 并填充命名的 div itemEdit## Edit.ascx 有保存和取消按钮。

成功保存并取消隐藏edit div并显示原itemDisplay## 保存过程中失败显示在edit.ascx中。

4

2 回答 2

2

这些听起来都像是离散的动作,因此在它的实现中并不是特别 RESTful。通常我会有一个带有过滤的列表操作——这个过滤可以通过 AJAX 完成,因为它返回的基本上是相同的视图。单击特定项目可能会将我带到详细信息视图 - 带有一个编辑按钮。我可能还会在列表中包含一个编辑按钮,在这种情况下,单击它会将我带到编辑模式下的详细信息页面。但是,列表、查看和编辑都是不同的操作,并且具有不同的 URL。单击“查看”或“编辑”中的列表按钮将使我返回“列表”操作。单击编辑中的保存按钮将使我返回到该项目的视图——这提供了该项目已更新的确认。编辑中的错误会使用适当的消息呈现编辑视图。

我的经验法则是在视图的上下文没有变化时使用 AJAX,但在调用新操作(新上下文)时使用完整请求(GET/POST)。这有助于保持接口 (URL) RESTful。当然,你可以用任何你想做的方式来做,但是 MVC 让 RESTful URL 更容易,而 RESTful URL 让用户更容易为页面添加书签以轻松返回 - 正是因为它们映射到一个特定的操作特定的数据项。

于 2009-04-20T12:01:09.313 回答
0

正如您所描述的,搜索可以以“ajax 方式”完成。使用相同的 url / page 来编辑和显示详细信息会使代码混乱,并且正如另一个答案中所述,它不是很完整,所以我会为此使用单独的 URL 和页面。

于 2009-04-20T12:20:20.983 回答