2011-11-02 28 views
3

我在我的应用程序 我使用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个结果的隐藏字段中的任何一个帮助或能有一个解决方案

+0

可能值得一读:http://byatool.com/mvc/asp-net-mvc-multiple-checkboxes-and-strongly-typed-views/ – Jesse

回答

6

你需要寻找到Editor Templates

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

这允许你这样做你是千真万确的事情谈论。

+0

这是如何解决我正在谈论加载模板的问题使用不是我的问题的模型 –

+0

@MohamedSalah - 阅读关于编辑模板,他们解决了您遇到的确切问题。你正在使用编辑器(因此@ Html.CheckboxFor)。 – Sam

+1

@MohamedSalah - 您可以为该类定义自定义编辑器模板,并且可以定义您想要的确切标记。 – Jamie