Asp.net mvc asp.net mvc搜索和编辑视图

Asp.net mvc asp.net mvc搜索和编辑视图,asp.net-mvc,partial-views,Asp.net Mvc,Partial Views,我正在考虑创建一个允许基于ajax的搜索和编辑功能的视图。如果您对我正在考虑的结构有任何反馈,我将不胜感激 该结构将包括 一个文本框和一个搜索按钮 按钮的提交导致点击操作搜索,并返回带有 -在命名div“itemDisplay###”中找到的项的文本表示形式(作为找到的项的Id) -名为edit的按钮 -占位符div,其id为找到的项“itemEdit##” 当用户点击编辑按钮时,将请求局部视图(edit.ascx)并填充命名的div itemEdit## Edit.ascx具有保存和取消按钮

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

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

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

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


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

搜索可以用你描述的“ajax方式”来完成。但是,使用相同的url/页面进行编辑和显示详细信息会使代码变得混乱,正如另一个答案中所述,restfull不是很完整,因此我将使用单独的url和页面