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

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

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

1 Ответ

1 голос
/ 22 июля 2011

Вы пробовали

<%= Html.DropDownListFor(m => m.PropertyType.PropertyType,  Model.PropertyType.PropertyTypeSelectList(), "Choose one") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...