2017-08-08 5 views
0

Je suis en train de définir l'option par défaut d'une liste de sélection dans MVCValeur par défaut Liste Sélectionnez

que je fais ce qui suit, mais il ne fonctionne pas

@Html.DropDownListFor(Model => Model.CandidateOrderLine.SiteId, new SelectList(Model.Customer.Sites, "SiteId", "SiteName", Model.Customer.Sites.Where(x => x.IsPrimarySite == true).ToString()), "Select Site", new { @class = "form-control", @data_val_required = "Please select a site" }) 

Toute aide à ce serait aPPRÉCIÉES,

grâce

Chris

+0

Supprimez votre Model.Customer.Sites.Where (x = > x.IsPrimarySite == true' dans le constructeur 'SelectList' (ignoré lors de la liaison à une propriété de modèle - c'est la valeur de' SiteId' qui détermine ce qui est sélectionné.) Si sa valeur correspond à la valeur de l'une des options , alors cette option sera sélectionnée. –

Répondre

1

en supposant que votre action GET est en soi Prép une valeur de SiteId valide au nom de vos classes propriété Model.CandidateOrderLine.SiteId

Tout en supposant ressemble ces

public ActionResult Create() 
{ 
    var vm=new YourVideModelClass(); 
    vm.CandidateOrderLine= new CandidateOrderLine(); 
    vm.SiteId = 3; // Hard coded for demo. Replace with valid SiteId 
    return View(vm); 
} 

Cela devrait fonctionner.

@Html.DropDownListFor(Model => Model.CandidateOrderLine.SiteId, 
     new SelectList(Model.Customer.Sites, "SiteId", "SiteName")), 
     "Select Site", 
      new { @class = "form-control", @data_val_required = "Please select a site" }) 

Ceci sélectionnera l'option avec la valeur correspondant à ce que nous avons défini dans notre action GET.

1

Pouvez-vous l'essayer? ... Model.Customer.Sites.Where (x => x.IsPrimarySite == true) .FirstOrDefault(). ToString()) ...