2012-03-09 12 views
1

J'ai une vue avec un formulaire. Sur ce formulaire j'ai quelques zones de texte et 2 listes déroulantes.asp.net mvc 3 modèle liaison dropdown

Ceci est mon ViewModel.

public class NewApplicationViewModel 
{ 
    public ApplicationData Application { get; set; } 

    //Selectlists 
    public SelectList Questionnaires { get; set; } 
    public SelectList Jobs { get; set; } 
} 

La classe ApplicatoinData ressemble à ceci

public class ApplicationData 
{ 
    [HiddenInput(DisplayValue = false)] 
    public Guid Id { get; set; } 
    [Required] 
    public ApplicantData Applicant { get; set; } 
    [Required] 
    public QuestionnaireData Questionnaire { get; set; } 
    [Required] 
    public JobData Job { get; set; } 
    public string Pdf { get; set; } 
} 

Le "Questionnaire" et te "Job" doivent être choisis parmi les DropDownLists. Comment lier la valeur sélectionnée dans la liste déroulante à l'objet dans mon "ApplicationData"? Pour être complet, ceci est l'action de mon contrôleur pour remettre le formulaire.

[HttpPost] 
    public ActionResult NewApplication([Bind(Prefix="Application")]ApplicationData model) 
    { 
     var application = Mapper.Map<ApplicationData, Application>(model); 
     _applicationRepository.Add(application); 
     _session.Commit(); 
     return View(); 
    } 

Merci

+0

Vous pouvez spécifier la valeur sélectionnée de SelectList lorsque vous créez l'instance NewApplicationViewModel. –

Répondre

3
@Html.DropdownListFor(
    x => x.Application.Questionnaire.ID, 
    Model.Questionnaires 
) 

@Html.DropdownListFor(
    x => x.Application.Job.ID, 
    Model.Jobs 
) 
1

S'il vous plaît se référer ci-dessous le lien pour la liaison de la liste déroulante. Cela vous sera très utile.

ASP.NET MVC - drop down list selection - partial views and model binding

Can't get selected drop down value to bind to view model property

ici si vous ne voulez pas créer de propriété dans le modèle pour la liste des articles, que vous pouvez également stocker dans un ViewData ou ViewBag. Veuillez trouver l'exemple de code ci-dessous.

<%= Html.DropDownList("Category.CategoryId", new SelectList((
IEnumerable<ProductManagement.Models.Category>)ViewData["CategoryList"], 
"CategoryId", "CategoryName"))%>