Загрузка списка элементов из базы данных внутри частичного класса - PullRequest
1 голос
/ 04 апреля 2011

Кажется, это глупая проблема, но я иду ...

У меня есть таблица Shops (уже добавлена ​​в мой файл .edmx), и я создал частичный класс Shops, чтобы добавить проверочный материал, который приводит к получению sth:

[MetadataType(typeof(ShopsMetaData))]
public partial class Shops
{

}

public class ShopsMetaData
{
    [HiddenInput(DisplayValue = false)]
    public int ID { get; set; }

    [Display(Name = "Shop name")]
    [Required(ErrorMessage = "The field shop name can't be empty")]
    public string ShopName { get; set; }

    [Required(ErrorMessage = "The field address can't be empty")]
    public string Address { get; set; }

    [Display(Name = "State")]
    [Required(ErrorMessage = "The field state can't be empty")]
    public string State { get; set; }
}

Проблема в свойстве «State»: я мог бы просто оставить текстовое поле, и человек мог бы напечатать аббревиатуру штата, но это не было бы так мудро. Я мог бы поместить выпадающий список с предопределенными состояниями, но мне нужно получить их из базы данных.

Можно ли как-нибудь получить список состояний из базы данных внутри этого класса, используя тестируемый код?

1 Ответ

4 голосов
/ 04 апреля 2011

Что я обычно делаю, так это то, что в своем действии я установил динамическое свойство для хранения списка состояний следующим образом:

ViewBag.States = (from state in context.States
                  select new SelectListItem {          
                                Text = state.Name, 
                                Value = state.Id.ToString()}
                  ).ToList();

И тогда мой вид выглядит примерно так

<div class="editor-label">
    @Html.LabelFor(model => model.State)
</div>
<div class="editor-field">
    @Html.DropDownListFor(model => model.State, (IList<SelectListItem>)ViewBag.States)
</div>

Предполагается, что ваша модель содержит свойство State.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...