gpt4 book ai didi

asp.net-mvc - 打开子表单时应该如何保存和重新填充表单数据?

转载 作者:行者123 更新时间:2023-12-05 01:36:34 24 4
gpt4 key购买 nike

在一个 MVC4 项目中,我有一个包含部分 View 的表单,该 View 是在学校学习的语言的索引 View 。它是默认类型的 View 模板索引,每行具有添加、删除、编辑链接等。当您添加或编辑时,它会打开一种语言的添加或编辑 View 。例如之后添加语言,返回更新后的局部 View 。

我的问题是,如果用户打开语言窗体,主窗体上的编辑和捕获将会丢失。我不能在打开语言表单之前只进行 Ajax 保存,因为主表单可能只部分完成并且无法通过验证。不过,我想做的是使用一个 AjaxPreserve 操作,该操作接受一个 FormCollection,并将其存储在 session 中(在磁盘上或任何地方),因此没有模型绑定(bind)和执行服务器验证。

然后我有两个问题:我需要在调用 AJAX 操作之前禁用客户端验证,我需要使用我之前保存的 FormCollection 重新填充主表单。我认为应该有一些 jQuery 巫术来禁用客户端验证,但我完全无法重新填充表单。

备用解决方案:我可以使用弹出式 ip 形式的编辑器模板,而不是使用“子表单”,其中不需要 FK ID,但我们只在某些情况下,所以我的问题仍然存在。

最佳答案

您能否在创建 javascript 模型并将其绑定(bind)到网格/对话框编辑/模板 View 时使用类似 Knockout 的东西。我会将整个数据转换为 JS 模型,将其绑定(bind)到表/网格,然后在客户端跟踪所有更改。当一切都完成后,只需将整个模型序列化回服务器并更新数据存储。如果这是一个可以接受的场景,它将为您省去很多麻烦。需要熟悉 Knockout,但如果您以前使用过它,您将能够以一种非常干净有效的方式解决这个问题。

Knockout 网站上的这个示例说明了我要提出的建议。编辑、删除、添加都在客户端完成,直到您将所有数据发送回服务器。您将需要跟踪每个对象的标志,以了解它是否被添加、编辑或删除。

http://knockoutjs.com/examples/contactsEditor.html

关于asp.net-mvc - 打开子表单时应该如何保存和重新填充表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14559773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com