2013-05-23 17 views
13

Ho provato questo @Html.EditorFor(model => model.Name, " ", new { data_bind = "value:firstName" }); e altri possibili sovraccarichi ma nessuno di essi sembra funzionare.Come utilizzare l'attributo data-binding di Knockout in helper Mvc come Html.EditorFor()

Il resto di codice:

<script type="text/javascript"> 
$(document).ready(function() { 

    function AppViewModel() { 
     this.firstName = ko.observable(""); 
     this.lastName = ko.observable(""); 
    } 
    ko.applyBindings(new AppViewModel()); 
}); 

+0

Mi raccomando di usare solo html generico e non utilizzare l'helper @ html.Editor. Se hai bisogno dei dati dal modello, usalo per costruire il tuo AppViewModello – atbebtg

+0

Qual è l'output html creato dal tuo editor? Crea una casella di testo o un'etichetta? Manca l'attributo data-bind che hai specificato? – hawkke

+0

Sì, manca. –

risposta

30

il 3 ° parametro EditorFor non fa quello che pensi dovrebbe fare.

Vedi http://msdn.microsoft.com/en-us/library/ff406461(v=vs.98).aspx

EditorFor non può aggiungere attributi HTML per l'elemento. Utilizzare TextBoxFor invece:

@Html.TextBoxFor(model => model.Name, new { data_bind = "value:firstName" }); 
+1

Per .Net Framework 4.6.1 e versioni successive posso confermare che '@ Html.EditorFor (m => m.FirstName, new {htmlAttributes = new {@class =" form-control ", data_bind =" valore: firstName ", maxlength = 50}}); 'funziona. ** data_bind ** è ancora la chiave! –

2

ho capito che sono un po 'in ritardo su questo, ma ecco una soluzione che ho usato.

Passare il nome del campo (in questo caso name) per l'editor di modelli come parte del additionalViewData in questo modo:

@Html.EditorFor(t => t.name, "", new { fieldName = "name" }) 

Poi, nel tuo editorTemplate si può avere questo:

@{ 
    var fieldName = ViewData.Where(v => v.Key == "fieldName").FirstOrDefault().Value; 
} 
@Html.TextBox("", Model, new { data_bind = "value:"+fieldName }) 

Spero che questo aiuti qualcuno.

+1

Assicurati di utilizzare il markup su [codice in formato corretto] (http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks). Aiuta molto con la leggibilità. – royhowie

Problemi correlati