2014-06-20 9 views
7

Ho un problema con un elenco a discesa knockoutjs, ho un'applicazione MVC 5 con questo sulla mia vista del rasoio, che è vincolata dal knockout.elenco a discesa ad eliminazione diretta passare la selezione al modello in MVC5

<select name="alddlname" id="alddl" 
    data-bind=" 
     options: authorityLevel, 
     optionsText: 'AuthorityLevel', 
     optionsValue: 'aid', 
     value: aid 
    "> 
</select> 

vorrei creare un collegamento per l'utilizzo della voce selezionata e passarlo a un attributo di modello

public List<authorityLevel> authLevellistItems { get; set; } 
public string SelectedAuthType { get; set; } 

vorrei legare il modello per l'elenco a discesa in modo che selectedAuthType viene quindi impostato al valore

la discesa è poppulated da eliminazione diretta con questo

var authorityLevelList = Html.Raw(JsonConvert.SerializeObject(ViewBag.authorityLevelDDL)); 

$(document).ready(function() 
{ 
    var vm = new AppViewModel();    
    vm.authorityLevel = ko.mapping.fromJS(@authorityLevelList); 
    ko.applyBindings(vm); 
}); 

grazie a un dvance

+0

Mostra altro del tuo codice con dettagli specifici di un problema che stai riscontrando o crea un esempio del problema in JSFiddle. Non ci sono abbastanza informazioni qui. – Tanner

+0

modificato con codice C# extra, –

risposta

6

OK così ho capito

se uso il @html.DropDownListFor aiuto e ancora legano attributi miei dati da knockout Ho un elenco a discesa che viene popolato da oggetto array KO JSON, ma poi anche associare questo ad il modello MVC 5 può essere quindi passato a un controller e inserito in un database.

// la parte data_bind è la parte knockout.js il resto è il rasoio C# view helper

@Html.DropDownListFor(m => m.SelectedAuthType, 
     (SelectList)Model.authlevellistItems, 
new { id = "alddl", data_bind = " options: authorityLevel, optionsText: 'AuthorityLevel', optionsValue: 'aid'" }) 

spero che questo aiuterà gli altri e la mia domanda non era solo una perdita di tempo. Grazie A

+0

Si ricorda se la lista di selezione è stata passata vuota? questo ha funzionato per me usando 'new List ()' al posto del tuo '(SelectList) .Model.authlevellistItems' sembra che ti legherei una volta tramite MVC e di nuovo tramite knockout per il tuo esempio. Ho ragione? solo cercando di ottenere una comprensione, non criticando. grazie –

+0

Per quanto mi ricordo - è passato un po 'di tempo - stavo usando la sintassi del rasoio sul carico che questo modello era vincolato al modello MVC e poi dopo aver gestito tutto asincrono tramite kncokout e json - probabilmente non si poteva usare il rasoio e legare con il knockout caricare e bene come asincrono –

Problemi correlati