2015-06-09 4 views
0

Я новичок в asp.net mvc и, несмотря на то, что несколько поисков не могут получить мою голову успешно в раскрывающихся списках в представлении.DropDownListFor связывание с моделью

В частности, я сначала создаю проект, который является сущностным кодом.

У меня есть форма, которая требует от пользователя необязательного выбора типа лицензии, который у них есть.

И спасибо за помощь или помощь. Я ищу для создания DropDownListFor помощника в представлении, чтобы включить выпадающий список для LicenceType.

Модель раздела GRCMember, относящиеся к типу лицензии является: Тип

public class GRCMember 
{ 
    [Column(TypeName = "int")] 
    public int? LicenceTypeId { get; set; } 
} 

Лицензия Модель:

public class LicenceType 
{ 
    public int LicenceTypeId { get; set; } 
    [StringLength(150)] 
    [Column(TypeName = "nvarchar")] 
    public String Type { get; set; } 
    [Column(TypeName = "bit")] 
    public bool? Dormant { get; set; } 
    public virtual ICollection<GRCMember> GRCMembers { get; set; } 
} 

Раздел Ассоциированные Регистрация Просмотр Модель:

public class RegisterViewModel 
{ 
    [Display(Name = "Licence Type")] 
    public int? SelectedLicenceTypeId { get; set; } 
} 

Получить контроллер метод:

[AllowAnonymous] 
[HttpGet] 
public ActionResult Register() 
{ 
    return View(); 
} 

И, наконец, падение вниз секции зрения:

@model GRCWebApp.Models.RegisterViewModel 
<div class="col-md-3 col-md-offset-1"> 
    @Html.LabelFor(model => model.SelectedLicenceTypeId, htmlAttributes: new { @class = "control-label" }) 
    @Html.EditorFor(model => model.SelectedLicenceTypeId, new { htmlAttributes = new { @class = "form-control" } }) 
    @Html.ValidationMessageFor(model => model.SelectedLicenceTypeId, "", new { @class = "text-danger" }) 
</div> 
+0

ViewModel является представлением что, на ваш взгляд. У вас нет ничего, что бы представляло ваш dropdownlist of licensetypes. 'DropDownListFor (m => m.whateverimsupposetobindto, Model.licenseTypes);' – Luminous

+0

Вы должны дать нам Минимальный, Полный и Подтверждаемый пример http://stackoverflow.com/help/mcve. Дайте мне простой пример, я попробую почтовый код для вас. – ramiramilu

+0

Ive снял код, чтобы показывать только связанные разделы –

ответ

1

Давайте предположим, что у вас есть два объекта под названием Человек и город. Тогда вы будете использовать ViewModel для того, чтобы заполнить эти две сущности в модели, как показано ниже:

PersonViewModel:

public Person Person { get; set; } 
public IEnumerable<City> Cities { get; set; } 


Контроллер конечно возвращает ViewModel:

Контроллер:

public ViewResult Create() 
{ 
    PersonViewModel model = new PersonViewModel 
    { 
     Person = new Person(), 
     Cities = repository.Cities.ToList() 
    }; 
    return View(model); 
} 


Вы должны пройти ViewModel на ваш взгляд, а затем использовать DROPDOWNLIST, как показано ниже:

Вид:

@model Project.WebUI.Models.PersonViewModel 
... 
@Html.LabelFor(m => m.Person.City) 
@Html.DropDownListFor(m => m.Person.City, new SelectList(Model.Cities, "CityID", "CityName"), "---- Select ----") 

Надеется, что это помогает ...

+0

Это, конечно, начинается, однако, у меня есть ошибка в репозитории, она не существует в текущем контексте? –

+0

Репозиторий - это DbContext, вы должны изменить его на свой. repository.Cities возвращает объект City из уровня данных. –

+0

Спасибо, что я изменил его, и это создает выпадающий список, однако, если просмотреть его меньший и не стилизованный, то текстовое поле, можно ли это изменить? –

Смежные вопросы