我正在尝试使用actionlink将3个值从视图发送到另一个操作。我有一张桌子。每行有3列,id,name和bid money是一个文本框。问题是动作链接只传递第一行文本框的值,假设我按下第二行的动作链接,它正在传递,第二行的名称和ID,但是文本框中的出价金钱,正在通过第一行。
我的观看代码:
@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 :(得分: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="bidMoney@(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元素,但只能返回一个,所以它会给你第一个。