我在我的应用程序 我使用MVC 3剃须刀一个问题,我想在形式我怎么能在形式上Asp.net MVC3遍历项目
@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>
}
}
检查框的值只是我想所有检查checkboxs的价值我tryed创建模型拿着我的复选框的值和隐藏文本的下方
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" })
现在的问题是 当我提交我发现两个值为假,这是我的复选框和两个ID的实际表示形式,这也是我隐藏字段的实际表示形式“正确场景” 当我检查相同形式的复选框之一时,我发现了3个结果复选框和2个结果的隐藏字段中的任何一个帮助或能有一个解决方案
可能值得一读:http://byatool.com/mvc/asp-net-mvc-multiple-checkboxes-and-strongly-typed-views/ – Jesse