我如何迭代Asp.net MVC3形式的项目

时间:2011-11-02 22:16:17

标签: c# asp.net asp.net-mvc asp.net-mvc-3

我的申请表有问题 我正在使用带有剃刀的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,任何人都可以帮助我吗?

-----------------编辑------------------ 谢谢Sam和Jesse

我为我的问题找到了一个解决方案,但我现在面临另一个问题,首先我通过在模型视图中更改来解决我的问题

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个结果任何人都可以帮忙或有解决方案

1 个答案:

答案 0 :(得分:6)

您需要查看Editor Templates

How to create custom editor/display templates in ASP.NET MVC 3?

这些允许你做你正在谈论的确切事情。