один называется 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
для PropertyTypeModel
PropertyTypeSelectList
? Я не смог найти никакой информации о том, как этого добиться. Как «прочитать» модель типа в модель свойств?
Пожалуйста, помогите, я занимаюсь этим часами. Если это вообще возможно, код для этого, это было бы здорово.