【问题标题】:Dynamic model binding client side动态模型绑定客户端
【发布时间】:2019-09-03 00:15:43
【问题描述】:

我正在创建一个 asp.net MVC 剃须刀页面,其中我必须使用 jQuery 动态添加/删除模型(全部在客户端)。模型不仅需要在列表末尾添加/删除,而且可以是在列表中的任何位置删除/添加。在这种情况下如何处理模型(模型的索引),以便我必须将模型绑定数据发布到控制器

目前,我正在像这样克隆数据,

var $newPanel = $currentPanel.clone().removeAttr('id');

并像这样分配对象

$('#id1', $newPanel).attr('name', 'CurrentDateTrips[' + index + '].Vehicle');

【问题讨论】:

标签: c# jquery asp.net-mvc dynamic model-binding


【解决方案1】:

要使用默认的 MVC 列表绑定,索引需要顺序(即 1,2,3,而不是 1,3,4)。

但是,索引不需要在 html 中按该顺序排列,只要它们在帖子中是连续的即可。

对于删除,不要.remove() 行,而是有一个逻辑删除(例如,带有name=rowdeleted 左右的隐藏输入)。这样在删除行时序列保持顺序。

中间添加新行与末尾添加相同,索引为现有行/最高索引+1。但可以在实际行中的任何位置,无需重新索引。

【讨论】:

  • 我试过这个,但在删除/添加时,我不知道要对哪个索引执行该操作,因为索引将不按顺序排列。为了获取索引,我必须阅读我猜的 html。
  • 是的,您的删除按钮类似于 (this=button) var id = $(this).closest("tr").data("index") 其中 <tr data-index="@index">$(this).closest("tr").hide().find(".hiddendeleteinput").val(true) 如果您将 nth-index 用于条纹,那么您可能需要删除行,但在行之外有 <input name="hidden[idx]"> 输入
  • 是的,使用数据 - 真的很有帮助。为我工作。谢谢
猜你喜欢
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 2019-05-22
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多