Jquery 在MVC中,在表行中放置主键的最佳实践是什么

Jquery 在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一起使用(它将处理程序与代码分开是没有充分理由的,

我的问题是,在表行上放置主键时的最佳实践是什么&使用Jquery查找ID

因此,使用MVC,您可以使用编辑和删除按钮创建数据表,单击该按钮将打开模型弹出窗口

你应:

a) 在每个按钮的数据属性中放置主键

b) 每行都有隐藏字段

c) 在每个按钮上使用Onclick&将ID传递给函数

d) 在tr标签上有ID
  • a) 如果不需要,请不要重复属性(会使页面膨胀)
  • b) 隐藏字段只有在需要回发值时才有效
  • c) 决不要将
    onclick
    处理程序与jQuery一起使用(它将处理程序与代码分开是没有充分理由的,并且它只支持单个处理程序)
  • d) 切勿将ID用于数据属性(由于ID在页面上必须是唯一的,因此冲突的可能性太大)
  • 所以我倾向于选择
    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)。谢谢这是我想要的。