Knockout.js e MVC
-
29-09-2019 - |
Domanda
appena iniziato a giocare con knockout.Js che è un quadro fantastico Steve è veramente fatto bene con quello. Una cosa che non riesco a fare al minuto è impliment con la mia Html Helpers. Così per exmaple ho:
<%: Html.TextBoxFor(model => model.Division) %>
ma mi piacerebbe linea per usare il databind su questo, ma al minuto non posso ottenere l'attributo "databind" in l'helper. Ho usato attributi prima come @class, Id ecc ma questo è difficile a causa delle - tutte le idee .. Ive ha provato:
<%: Html.TextBoxFor(model => model.SupplierName, new { data-bind = "SupplierName"}) %>
e
<%: Html.TextBoxFor(model => model.SupplierName, new { "data-bind"" = "SupplierName"}) %>
, ma nessuna gioia. si usano parecchio i soccorritori Editor e casella di testo e mi piacerebbe molto di integrare questi nella voce del knock out con ..
Qualsiasi aiuto molto appretiated
Soluzione
Questo dovrebbe funzionare:
<%: Html.TextBoxFor(model => model.SupplierName, new { data_bind = "SupplierName"}) %>
I nomi delle variabili non può contenere un trattino (-). Ma se si utilizza un carattere di sottolineatura (_) in un attributo HTML, viene automaticamente convertito in un trattino quando la sua 'resa'
Altri suggerimenti
È in grado di fornire gli attributi sia come oggetto anonimo o come un dizionario. In questo caso particolare un dizionario dovrebbe essere utilizzato:
<%: Html.TextBoxFor(m => m.SupplierName, new Dictionary<string, object> { { "data-bind", "SupplierName" } }) %>
Ho usato la risposta di Jim come base per la mia soluzione MVC 4.
Jim:
<%: Html.TextBoxFor(model => model.SupplierName, new { data_bind = "SupplierName"}) %>
Mine:
@Html.TextBoxFor(model => model.SupplierName, new { data_bind = "value: SupplierName" })
Utilizzando Html.TextBoxFor con la proprietà di classe e personalizzato ( MVC) per come farlo in MVC3. Im usando MVC2 quindi la risposta di cui sopra era perfetto per me