我如何可以迭代项目在窗体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个结果用于隐藏字段,可以在这方面提供任何帮助或有解决方案
您需要查看Editor Templates
:
如何在ASP中创建自定义编辑器/显示模板Net MVC 3?
这些可以让你做你想做的事情