2009-02-16 68 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的人已经解决了它,如果你不使用他们的东西,它很容易“撕裂”。

无论如何,我觉得从用户发布的任何内容自动加载实体是有点危险的......将不得不考虑它。