2013-03-15 110 views
1

我看这部分:如何在JavaScript中模拟点击@ Html.ActionLink?

@foreach (var item in Model.listeStations){ 
    <tbody> 
     <tr id="ligneRecherche"> 
      <td id="tdId"> 
       @Html.DisplayFor(modelItem => item.nom) 
      </td> 
      <td id="tdData"> 
       @Html.DisplayFor(modelItem =>item.adr) 
      </td> 
      <td id="tdLangue"> 
       @Html.DisplayFor(modelItem => item.cp) 
      </td> 
      <td id="tdType"> 
       @Html.DisplayFor(modelItem => item.ville) 
      </td> 
      <td id="selection"> 
       @Html.ActionLink("Choisir", "DetailsStation", new { id=item.id }) 
      </td> 
     </tr> 
    </tbody> 
} 
</table> 

如果一个用户点击无处不在它执行ActionLink的表中的一行。有可能在JS或其他方面做到这一点?提前致谢 !

回答

1

class添加到您的tr标记以使用jquery进行选择。

<tr id="ligneRecherche" class="row"> 

,并选择与使用jquery

$(".row").click(function(){ 
    var url = $('td a', this).attr('href'); 
    window.location = url; 
}); 

,也是你的观点应该是这样的点击行:(删除tbody标记出来foreach

<tbody> 
@foreach (var item in Model.listeStations){ 
    <tr id="ligneRecherche" class="row"> 
     <td id="tdId"> 
      @Html.DisplayFor(modelItem => item.nom) 
     </td> 
     <td id="tdData"> 
      @Html.DisplayFor(modelItem =>item.adr) 
     </td> 
     <td id="tdLangue"> 
      @Html.DisplayFor(modelItem => item.cp) 
     </td> 
     <td id="tdType"> 
      @Html.DisplayFor(modelItem => item.ville) 
     </td> 
     <td id="selection"> 
      @Html.ActionLink("Choisir", "DetailsStation", new { id=item.id }) 
     </td> 
    </tr> 
} 
</tbody> 

多了一个信息: idtrtd标签是没有意义的。因为它们是重复的元素。

+0

感谢您的回答,但它不起作用。我有这个例外:找不到资源。请求的网址:/首页/ undefined – 2013-03-15 15:29:58

+0

您的动作网址不正确,或者您没有'DetailsS​​tation/Choisir' – 2013-03-15 15:32:20

+0

@AliRızaAdıyahşi您的回答在这里不正确:'$(this).closest(“a”)。attr(“ href“)' – webdeveloper 2013-03-15 15:34:30