2011-11-02 49 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