Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 ajax只适用于表的第一行_Asp.net Mvc 3_Asp.net Ajax - Fatal编程技术网

Asp.net mvc 3 ajax只适用于表的第一行

Asp.net mvc 3 ajax只适用于表的第一行,asp.net-mvc-3,asp.net-ajax,Asp.net Mvc 3,Asp.net Ajax,我正在使用asp.NETMVC3 在我的视图中,我正在显示一个表 在表i中,每一行都有一个名为“附加文件”的链接 此链接将通过ajax调用调用控制器函数 @Html.HiddenFor(modelItem => item.CourseID, new { @id = "CourseID", @Class="courseiding"}) @Html.HiddenFor(modelItem => item.PrtfID, new { @id = "prtfID" , @Class="prt

我正在使用asp.NETMVC3 在我的视图中,我正在显示一个表 在表i中,每一行都有一个名为“附加文件”的链接 此链接将通过ajax调用调用控制器函数

@Html.HiddenFor(modelItem => item.CourseID, new { @id = "CourseID", @Class="courseiding"})
@Html.HiddenFor(modelItem => item.PrtfID, new { @id = "prtfID" , @Class="prtfiding"})
@Html.ActionLink("Attach a file", "Index", null, new { @Id = "attchlink" })
阿贾克斯:

这适用于所有行,但在传递id和大小中的值时…它仅为所有行传递第一行的值

元素的值在页面上应该是唯一的

您的问题是,您有多个链接具有相同的
Id=“attachlink”
,当您调用
$(“#attachlink”)
jQuery时,只使用第一个链接

要解决此问题,应使用类而不是
Id

@Html.ActionLink("Attach a file", "Index", null, new { @class = "attachlink" })

$('.attachlink').click(function (e) {

}
然后,您可以使用
.closest()
函数获取单击事件中的“最大”值:

var id = $(this).closest('.prtfiding').val();
var size1 = $(this).closest('.sizing').val();
或者,您可以将所有必需的数据以
数据-
属性的形式放到ActionLink上:

@Html.ActionLink("Attach a file", "Index", null, 
    new 
    { 
         @Id = "attchlink",
         data_courseID = item.CourseID,
         data_prtfID = item.prtfID
    })
在js函数中,您可以通过以下方式访问它们:

var courseID = $(this).data('courseID');
var prtfID = $(this).data('prtfID');

如果您不需要其他地方的隐藏字段,您可以使用此方法删除它们。

它是否也适用于其他控件??比如,我试图访问相应行的大小和id,但它只给我第一行的信息。不清楚“适用于其他控件”的含义。一般情况下是:当页面上有多个元素并且需要所有元素时,请使用
属性。但是如果您想标记一个元素并找到该特定元素,请使用
id
属性。为了解决这个问题,有必要了解视图的外观,因为在单击事件中不能直接使用id,需要在DOM中找到正确的值,但我认为这是一个不同的问题。我实际上正在将该行中的id和大小作为参数发送给我的控制器…但每次它只取第一行的值…我更改了我的问题…请使用Lokwell我的视图看起来像一个带字段的普通表…每一行包含大小信息,这与其他行不同…但是对所有行采用相同的值
var courseID = $(this).data('courseID');
var prtfID = $(this).data('prtfID');