Knockout.js et MVC
-
29-09-2019 - |
Question
Tout a commencé à jouer avec knockout.Js qui est un cadre fantastique Steve est vraiment bien fait avec celui-là. Une chose que je ne peux pas sembler faire à la minute est impliment avec mon Html Helpers. Donc, pour exmaple J'ai:
<%: Html.TextBoxFor(model => model.Division) %>
mais je ligne à utiliser le DataBind sur cela, mais à la minute où je ne peux pas obtenir l'attribut « DataBind » dans l'aide. Je l'ai utilisé des attributs tels que avant @class, Id etc, mais celui-ci est difficile en raison de la - des idées .. Ive a essayé:
<%: Html.TextBoxFor(model => model.SupplierName, new { data-bind = "SupplierName"}) %>
et
<%: Html.TextBoxFor(model => model.SupplierName, new { "data-bind"" = "SupplierName"}) %>
mais pas de joie. nous utilisons beaucoup les aides éditeur et zone de texte et je voudrais vraiment les intégrer dans de l'article avec knock out ..
Toute aide beaucoup appretiated
La solution
Cela devrait fonctionner:
<%: Html.TextBoxFor(model => model.SupplierName, new { data_bind = "SupplierName"}) %>
Les noms de variables ne peut pas contenir un trait d'union (-). Mais si vous utilisez un trait de soulignement (_) dans un attribut HTML, il est automatiquement converti en un trait d'union lorsque son « rendu »
Autres conseils
Vous pouvez fournir des attributs soit comme objet anonyme ou comme un dictionnaire. Dans ce cas particulier un dictionnaire doit être utilisé:
<%: Html.TextBoxFor(m => m.SupplierName, new Dictionary<string, object> { { "data-bind", "SupplierName" } }) %>
J'utilisé la réponse de Jim comme base pour ma solution MVC 4.
Jim:
<%: Html.TextBoxFor(model => model.SupplierName, new { data_bind = "SupplierName"}) %>
Mine:
@Html.TextBoxFor(model => model.SupplierName, new { data_bind = "value: SupplierName" })
Voir Utilisation de la propriété Html.TextBoxFor de classe et personnalisée ( MVC) pour savoir comment faire en MVC3. Im en utilisant MVC2 donc la réponse ci-dessus me était sur place pour