2017-12-27 1743 views
0

我正尝试使用actionlink将3个值从视图发送到另一个操作。我有一张桌子。每行有3列,包括ID,名称和出价金额,这是一个文本框。问题是只传递第一行文本框的值的动作链接,假设我按下第二行的动作链接,它传递第二行的名称和标识,但文本框中的出价钱,正在经过第一排。无法正确地将表格行中的文本框的值从视图传递到MVC5中的控制器

我的视图代码:

@model List<UdemyMVC.Models.Movies> 
@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>Index</h2> 

<table class="table table-striped table-bordered table-hover"> 
    <thead> 
     <tr class="danger"> 
      <th> 
       Id 
      </th> 
      <th> 
       Name 
      </th> 
      <th> 
       Bid Money 
      </th> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach (var movie in Model) 
     { 
      <tr> 
       <td> 
        @movie.Id 
       </td> 
       <td> 
        @movie.MovieName 
       </td> 
       <td> 
        <input type="text" id="bidMoney" name="bidMoney"/> 
       </td> 
       <td> 
        @Html.ActionLink("Details", "Details", "Test", new { Id =movie.Id, MovieName = movie.MovieName }, new { onclick = "this.href += '&biddingMoney=' + document.getElementById('bidMoney').value;", @class = "btn btn-primary" }) 
       </td> 
      </tr> 
     } 
    </tbody> 
</table> 
+0

你没有向td添加唯一的ID,所以所有的td都会有相同的名称和ID,类似于onclcik,即使你需要传递id和Charles已经给你的解决方案名称 –

回答

1

我想你应该添加一个索引来bidMony的ID,并使用该指数作为你想要的一个参考。我的剃须刀现在

完全生锈,但申报的指数

@{ int i = 0} 
    @foreach (var movie in Model) 
    { 

     <tr> 
      <td> 
       @movie.Id 
      </td> 

      <td> 
       @movie.MovieName 

      </td> 
      <td> 
       <input type="text" id="[email protected](i)" name="bidMoney" /> 

      </td> 
      <td> 

      @Html.ActionLink("Details", "Details", "Test", new { Id =movie.Id, MovieName = movie.MovieName }, new { onclick = string.Format("alert(document.getElementById('bidMoney{0}').value);",i), @class = "btn btn-primary" }) 



      </td> 

     </tr> 
     i++; 
    } 

我无法测试这一点,但我认为这是你需要做什么。问题在于你是getelementbyid看到一堆bidMoney元素,但只能返回一个,所以它给你第一个。

相关问题