ASP MVC 3获取foreach中特定项的隐藏字段值

时间:2013-11-04 11:13:43

标签: c# asp.net-mvc asp.net-mvc-3 http-post html-helper

我目前有这段代码:

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。

迎接

1 个答案:

答案 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"/>