【问题标题】:asp.net mvc search and edit viewsasp.net mvc 搜索和编辑视图
【发布时间】:2009-04-20 20:40:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: asp.net-mvc partial-views


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-12
        • 1970-01-01
        • 1970-01-01
        • 2013-04-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多