使用“编辑”按钮创建启用了ajax的子窗体

时间:2011-11-22 17:15:55

标签: asp.net-mvc asp.net-mvc-3 jquery asp.net-ajax

我正在寻找使用MVC 3从列表中的项创建启用Ajax的子表单的最佳方法。应生成静态值列表,但每个项旁边都有一个“编辑”链接/按钮,以切换内联编辑。

我确实按照此链接中的教程

http://blog.janjonas.net/2011-07-24/asp_net-mvc_3-ajax-form-jquery-validate-supporting-unobtrusive-client-side-validation-and-server-side-validation [1]

然而,它基于表单编辑字段始终可见

我想显示一个包含字段值的静态列表,但让用户点击“编辑”(例如按钮)激活编辑字段

我确实修改了[1]中的示例,只创建了一个带有提交按钮的表单的默认局部视图。当通过ajax发布数据时,将显示编辑表单。看起来它正在工作,(我只需要在第一个POST上隐藏验证错误 - 它不会发送真实数据)。

更新: 更好的解决方案可能是在静态视图中省略所有表单,在每个项目旁边只有一个css类按钮/链接,然后让jquery获取所单击项目的相关视图。我不知道如何使用MVC 3 + jQuery做到这一点。

另一个更新: 我发现了Ajax.Actionlink,它完全符合我的要求!

3 个答案:

答案 0 :(得分:2)

我发现了怎么做,事实证明这很简单!

我创建了两个部分视图。

用于渲染每个静态项目。我使用了Ajax.ActionLink和InsertionMode“replace”,并将项目的父项设置为目标

第二个用于呈现表单。在这里,我使用了类似选项的Ajax.Beginform。

在成功保存数据后,我返回静态视图,失败时,我再次返回带有ajax表单的局部视图。

我很高兴我找到了一种以MVC为中心的方法(虽然使用jQuery创建自定义内容很有趣)

答案 1 :(得分:0)

听起来你需要一个jQuery的内联编辑插件。我会尝试jEditable。我自己没有使用它,但似乎有广泛的文档。

答案 2 :(得分:-1)