2017-12-27 1744 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元素,但只能返回一個,所以它給你第一個。

相關問題