Jquery 在MVC中,在表行中放置主键的最佳实践是什么
我的问题是,在表行上放置主键时的最佳实践是什么&使用Jquery查找ID 因此,使用MVC,您可以使用编辑和删除按钮创建数据表,单击该按钮将打开模型弹出窗口 你应: a) 在每个按钮的数据属性中放置主键 b) 每行都有隐藏字段 c) 在每个按钮上使用Onclick&将ID传递给函数 d) 在tr标签上有IDJquery 在MVC中,在表行中放置主键的最佳实践是什么,jquery,model-view-controller,Jquery,Model View Controller,我的问题是,在表行上放置主键时的最佳实践是什么&使用Jquery查找ID 因此,使用MVC,您可以使用编辑和删除按钮创建数据表,单击该按钮将打开模型弹出窗口 你应: a) 在每个按钮的数据属性中放置主键 b) 每行都有隐藏字段 c) 在每个按钮上使用Onclick&将ID传递给函数 d) 在tr标签上有ID a) 如果不需要,请不要重复属性(会使页面膨胀) b) 隐藏字段只有在需要回发值时才有效 c) 决不要将onclick处理程序与jQuery一起使用(它将处理程序与代码分开是没有充分理由的,
onclick
处理程序与jQuery一起使用(它将处理程序与代码分开是没有充分理由的,并且它只支持单个处理程序)e)
:
- e) 如果只是供jQuery使用,我倾向于在每行使用一次
”data id=“
.nestest('tr').data(“id”)
等来获取PK。(实际上,我经常使用这种模式,我有一个自定义的jQuery扩展来完成这项工作。例如:.closestAttr(“数据id”)
)
.closestAttr():
为感兴趣的任何人提供的TypeScript代码:
// Find the nearest matching attribute in the elements themselves, as well as in all ancestors
jQuery.fn.closestAttr = function (attribute: string): string
{
return this.closest('[' + attribute + ']').attr(attribute);
};
或者在普通JS中:
// Find the nearest matching attribute in the elements themselves, as well as in all ancestors
jQuery.fn.closestAttr = function (attribute)
{
return this.closest('[' + attribute + ']').attr(attribute);
};
附加说明:如果数据分组在父项下,则在代表父项FK/组等的表上有另一个data id=“”
更新-对于注释中提供的代码示例:
我会这样做:
@foreach (var i in n)
{
<tr data-id="@i">
<td>@i</td>
<td><input type="button" class="edit" value="Edit" /></td>
<td><input type="button" class="delete" value="Delete" /></td>
</tr>
}
@foreach(n中的变量i)
{
@我
}
然后从按下的按钮上通过
.closest('tr').data(“id”)
获取id。如果您是在真正的代码优先的情况下工作,最好有一个专用于主键的唯一列。我假设在您的问题中,您在Jquery中将列与按钮相等。这才是最好的
当然,如果您使用的是预先存在的表,则必须使用该表中的键。有时它们是使用多个列的复杂键;我甚至看到过一个表,其中所有列都被用来构成一个键(但这是一个非常糟糕的设计IMHO)
如果您负责数据库设计,在我看来,为主键保留一列总是值得的,尤其是在您使用SQL server的情况下。决不使用IDs。如果只是供jQuery使用,我倾向于在每行使用一次
data id=“
”。我想您可以访问该id的任何地方都可以。隐藏字段非常常见,因为它也会自动与表单一起发布。对于JavaScript工作,数据属性也是合理的。(请注意,这两者并不是相互排斥的。)这实际上与MVC模式没有任何关系,只是将数据元素放入HTML表中。这取决于具体情况。例如,在某些情况下,我使用name=“object[id]”,而在其他情况下,我使用隐藏字段。这实际上取决于你们在构建什么。嗨,TrueBlueAusie,若行有两个按钮,你们会把数据id放在哪里?tr?Sample:@foreach(n中的vari){@i}@Chris:只需使用@foreach(n中的vari){
和上面显示的最接近的代码来获取PK/id)。谢谢这是我想要的。