我的申请表有问题 我正在使用带有剃刀的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个结果任何人都可以帮忙或有解决方案
答案 0 :(得分:6)
您需要查看Editor Templates
:
How to create custom editor/display templates in ASP.NET MVC 3?
这些允许你做你正在谈论的确切事情。