ASP.NET MVC - Как заполнить выпадающий список другой моделью?

Один называется 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 читает из базы данных и создает список с (на данный момент) двумя значениями, "дом" и "квартира". в представлении, где мне нужно выбрать тип свойства из dropdownlistЕдинственный способ, которым я смог сделать это, это жестко закодировать список прямо в представление, например так:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<PropertyApplication.Models.PropertyModel>" %>
....
....
<%= Html.DropDownListFor(m => m.PropertyType.PropertyType,  new[] {
new SelectListItem { Text = "House",
Value = "House" },
new SelectListItem { Text = "Apartment",
Value = "Apartment" }
}
, "Choose one") %>

Я не хочу этого, поскольку любые изменения, сделанные в базе данных, такие как добавление другого типа свойства, будут означать перекодировку списка в представлении. кроме того, этот код был дан мне так, и я должен использовать PropertyTypeModel,

Мой вопрос: как мне заполнить dropdownlist для с PropertyTypeModelPropertyTypeSelectList? Я не смог найти никакой информации о том, как этого добиться. Как "прочитать" модель типа в модель свойств?

Пожалуйста, помогите, я был в этом часами. Если это вообще возможно, код для этого, это было бы здорово.

1 ответ

Ты пытался

<%= Html.DropDownListFor(m => m.PropertyType.PropertyType,  Model.PropertyType.PropertyTypeSelectList(), "Choose one") %>
Другие вопросы по тегам