我目前有这段代码:
foreach (var item in Model.LstBagels)
{
@Html.Hidden("txtId", item.BagelId)
<div id="bagel">
<div id="bagel-info">
<div id="bagel-image">
<img src="@Url.Content(String.Format("~/Resources/Images/{0}.jpg", item.Image))" alt="" />
</div>
@if (@BestelBagels.Resources.Views.Index.IndexStrings.Name == "Name")
{
<h2>@Html.DisplayFor(m => item.Name)<br /></h2>
}
else
{
<h2>@Html.DisplayFor(m => item.NameFr)<br /></h2>
}
<input class="button widthorder" type="submit" name="BtnOrder" value="@BestelBagels.Resources.Views.Index.IndexStrings.Bestellen"/>
</div>
</div>
按下我的按钮时,我总是从所有项目或所有项目的列表中收到第一个ID。 但是,我如何才能收到我提交的ID? 我的txtId始终是我的itemsource中的第一个Id。
迎接
答案 0 :(得分:3)
按钮在哪里?
为什么不使用Form HtmlHelpers扭曲表单中的每个div?
您可以查看this post:
foreach (var item in Model.LstBagels)
{
@using (Html.BeginForm('ActionName', 'ContollerName', FormMethod.Post) {
@Html.Hidden("txtId", item.BagelId)
<div id="bagel">
<div id="bagel-info">
<div id="bagel-image">
<img src="@Url.Content(String.Format("~/Resources/Images/{0}.jpg", item.Image))" alt="" />
</div>
@if (@BestelBagels.Resources.Views.Index.IndexStrings.Name == "Name")
{
<h2>@Html.DisplayFor(m => item.Name)<br /></h2>
}
else
{
<h2>@Html.DisplayFor(m => item.NameFr)<br /></h2>
}
<input class="button widthorder" type="submit" name="BtnOrder" value="@BestelBagels.Resources.Views.Index.IndexStrings.Bestellen"/>
</div>
}
如果您不关心非js浏览器并且您的操作接受GET,则可以跳过表单使用并简单地构建操作按钮:
<input class="button widthorder" type="button" name="BtnOrder" onClick="window.location='@Url.Action("ActionName","ControllerName" , new { txtId= item.BagelId })'" value="@BestelBagels.Resources.Views.Index.IndexStrings.Bestellen"/>