我如何可以迭代项目在窗体Asp.net mvc

本文关键字:窗体 Asp net mvc 项目 何可 迭代 | 更新日期: 2023-09-27 18:13:27

我的应用程序有问题我使用MVC 3与剃刀,我想获得复选框的形式

的值
@using (Html.BeginForm("ConfirmItemAvilabilty", "Order", FormMethod.Post, new { id = "frmConfirmAvilabilty", name = "frmConfirmAvilability" }))
{
    foreach (OrderItem orderItem in orderAction.Order.OrderItems)
    {
    <div class="product">
        <ul>
            <li>
                <div class="productImg">
                    <img src="@orderItem.Product.Image" width="100px" height="100px"/>
                </div>
                <div class="centered">
                    <a href="@orderItem.Product.Link" target="_blank">Link</a> <span>@orderItem.Product.TitleAr</span>
                    <span>@orderItem.Product.Price</span>
                </div>
                @if (currentUser.UserTypeEnum == UserTypeEnum.Reseller)
                {
                    <div>
                        @Html.CheckBox("ChkConfirm", orderItem.IsAvailable, new { id="chkConfirm" ,@class="chkConfirm"})
                        @Html.Hidden("OrderItemId", orderItem.Id, new { id="hdnConfirm"})
                    </div>
                }
            </li>
        </ul>
    </div>
    }
    if (currentUser.UserTypeEnum == UserTypeEnum.Reseller)
    { 
        <button>Confirm</button>
    }
}

简单地说,我想获得所有选中复选框的值,我试图创建一个模型来保存我的复选框的值和它下面隐藏文本的值

public class ItemOrderModel
{
    public string ChkConfirm { get; set; }
    public string OrderItemId { get; set; }
}

在我的控制器中,我做了下面的操作,但是没有任何结果

   public ActionResult ConfirmItemAvilabilty(List<ItemOrderModel> OrderItems)
    {
        return View();
    }

但orderItems总是返回null,有人能帮助我吗?

-----------------编辑------------------谢谢山姆和杰西

我找到了我的问题的解决方案,但我现在面临另一个问题,首先我解决了我的问题通过改变模型视图,像这样

public class ItemOrderModel
{
    public List<bool> ChkConfirms { get; set; }
    public List<string> OrderItemId { get; set; }
}
并将复选框名称更改为
  @Html.CheckBox("ChkConfirms", orderItem.IsAvailable, new { id = "chkConfirm", @class = "chkConfirm" })

现在的问题是当我提交时,我发现两个值false这是我的复选框的实际表示两个id这也是我的隐藏字段的实际表示"正确的场景"当我在同一表单中检查一个复选框时,我发现3个结果用于复选框和2个结果用于隐藏字段,可以在这方面提供任何帮助或有解决方案

我如何可以迭代项目在窗体Asp.net mvc

您需要查看Editor Templates:

如何在ASP中创建自定义编辑器/显示模板Net MVC 3?

这些可以让你做你想做的事情