2012-05-02 96 views
1

我有這樣的模式:MVC模型列表結合

public class ReservationViewModel 
{   
    public Flight InboundFlight { get; set; } 
    public Flight OutboundFlight { get; set; } 
} 

//Flight 
public class Flight 
{ 
    public List<ISeat> Seats { get; set; } 
} 

//Seats 
    public interface ISeat 
    { 
    ECabin Cabin { get; } 
    int NumberOfSeatsAvailable { get; } 
    int SeatsChosen { get; set; } 
    string PropertyName { get; } 
} 

我的HTML組成的folliwing的:

<select id="OutboundFlight__0__Seats_SeatsChosen" name="OutboundFlight.[0].Seats.SeatsChosen" class="valid"><option... 
<select id="OutboundFlight__0__Seats_SeatsChosen" name="OutboundFlight.[1].Seats.SeatsChosen" class="valid"><option... 
<select id="OutboundFlight__0__Seats_SeatsChosen" name="OutboundFlight.[2].Seats.SeatsChosen" class="valid"><option... 

我的行動:

[HttpPost] 
    public ActionResult Index(ReservationViewModel model, FormCollection form) 
    {    
     return View(); 
    } 

在提交我嘗試綁定回到模型,但每個航班的座位返回空... 幫助將不勝感激

+0

您控制器的操作也會很有用 – glosrob

+0

我不認爲這裏有足夠的信息來回答這個問題。 –

回答

1

正在生成HTML是不正確的把它綁定到一個列表 - 字段名稱必須符合什麼什麼的訪問從C#中的屬性將是這樣的:

這應該工作:

name="OutboundFlight.Seats[0].SeatsChosen" 
+0

現在我得到「無法創建接口的實例」..如何解決這個問題? –

+0

不要綁定到接口。默認的modelbinder不知道如何創建一個ISeat。簡單的方法是將其更改爲具體的類,更難的方法是創建自定義模型綁定器。 – Leniency