Asp.net mvc ASP.NET MVC-如何使用其他模型填充dropdownlist?

Asp.net mvc ASP.NET MVC-如何使用其他模型填充dropdownlist?,asp.net-mvc,model-view-controller,drop-down-menu,models,Asp.net Mvc,Model View Controller,Drop Down Menu,Models,一个称为PropertyModel,另一个称为PropertyTypeModel。PropertyModel包含一个PropertyTypeModel,如下所示: public class PropertyModel { public int PropertyID { get; set; } public PropertyTypeModel PropertyType { get; set; } [DataType(DataType.Text)] [Displ

一个称为
PropertyModel
,另一个称为
PropertyTypeModel
PropertyModel
包含一个
PropertyTypeModel
,如下所示:

public class PropertyModel  {
    public int PropertyID { get; set; }

    public PropertyTypeModel PropertyType { get; set; }

    [DataType(DataType.Text)]
    [DisplayName("Property name")]
    public string PropertyName { get; set; }
}
PropertyTypeModel
是这样的:

public class PropertyTypeModel {
    public int PropertyTypeID { get; set; }
    [DataType(DataType.Text)]

    [DisplayName("Property type")]
    public string PropertyType { get; set; }

    public static List<SelectListItem> PropertyTypeSelectList()
    {
        using (Properties dataContext = new Properties())
        {
            return (from pt in dataContext.PropertyTypes
                    select new SelectListItem
                    {
                        Value = pt.PropertyTypeID.ToString(),
                        Text = pt.PropertyTypeName
                    }).ToList();
        }          
    }
}
我不希望这样,因为在数据库中所做的任何更改,例如添加另一种类型的属性,都将意味着在视图中重新编码列表。此外,这段代码是这样给我的,我需要使用
PropertyTypeModel

我的问题是:如何使用
PropertyTypeModel
PropertyTypeSelectList
填充的
dropdownlist
?我还没有找到任何关于如何做到这一点的信息。如何将类型模型“读取”到属性模型中

请帮忙,我已经干了好几个小时了。如果可能的话,代码可以这样做,那就太好了。

你试过了吗

<%= Html.DropDownListFor(m => m.PropertyType.PropertyType,  Model.PropertyType.PropertyTypeSelectList(), "Choose one") %>
m.PropertyType.PropertyType,Model.PropertyType.PropertyTypeSelectList(),“选择一个”)%%>
您试过了吗

<%= Html.DropDownListFor(m => m.PropertyType.PropertyType,  Model.PropertyType.PropertyTypeSelectList(), "Choose one") %>
m.PropertyType.PropertyType,Model.PropertyType.PropertyTypeSelectList(),“选择一个”)%%>

这不起作用,原因如下:1)执行m.PropertyTypeSelectList()时出现此错误-“名称“m”在当前上下文中不存在”。2) 模型m不是包含列表的模型。PropertyModel是视图中使用的模型,而PropertyTypeModel包含列表。PropertyModel有一个PropertyTypeModel作为属性。这就是我问题的全部要点,如何从视图+1中使用的PropertyModel访问PropertyTypeModel?这应该可以做到。或者(可以说是一种更简洁的方法)您可以在填充模型时填充
Model.PropertyType.PropertyTypeSelectList
属性。这不起作用的原因有几个:1)在执行m.PropertyTypeSelectList()时出现此错误-“名称“m”在当前上下文中不存在”。2) 模型m不是包含列表的模型。PropertyModel是视图中使用的模型,而PropertyTypeModel包含列表。PropertyModel有一个PropertyTypeModel作为属性。这就是我问题的全部要点,如何从视图+1中使用的PropertyModel访问PropertyTypeModel?这应该可以做到。或者(可以说是一种更简洁的方法),您可以拥有一个
Model.PropertyType.PropertyTypeSelectList
属性,在填充模型时填充该属性。