2009-02-16 97 views
19

我想解決是否有內置支持綁定複雜類型來形成元素。ASP.NET MVC:將一個複雜類型綁定到一個選擇

要使用一個共同的假設情況: 我有屬於一個類別產品的實體 - 模特是這個樣子:

public class Product 
{ 
    public int ID { get; set; } 
    public string Description { get; set; } 
    public Category Category { get; set; } 
} 
public class Category 
{ 
    public int ID { get; set; } 
    public string Title { get; set; } 
} 

創建表單來滋潤僅包含簡單的值,一個新的實體類型是好的和簡單的使用ASP.Net MVC框架,如:

public ActionResult Create(Product product); 

但對於上述情況在您的實體包含其他複雜類型?是否有內置機制將IEnumerable < T >綁定到下拉列表中,然後在提交表單時自動補充正確的 T

這將是相當微不足道的做手動 - 我只是試圖確定我可以有什麼免費的框。

回答

15

約模型綁定詳見hereherehere

+0

是的,我用一個複雜的模型聯編程序,這個答案中的這些鏈接是目前爲止看起來最好的地方。 – 2009-04-17 21:08:30

1

最接近的我認爲它會來覆蓋類中的ToString()方法來輸出有意義的信息到DropDownList - 但沒有其他的。

您可以將IEnumerable集合綁定到DropDownList,然後在提交表單時檢索其SelectedItem - 這是我能想到的最便宜的方法。

2

請檢查this,因爲我認爲談論你的問題,似乎S#arp的人已經解決了它,如果你不使用他們的東西,它很容易「撕裂」。

無論如何,我覺得從用戶發佈的任何內容自動加載實體是有點危險的......將不得不考慮它。