2016-09-01 1 views
0

Je suis en train de se Razor pour afficher une liste déroulante avec attibutes data_bind pour knock-outRazor échapper des guillemets simples dans les données attributs

commençant ainsi avec

@Html.DropDownListFor(model => model.Form.selectedItem, Model.empty, new 
       { 
        @class = "multiselected" 

       }) 

J'ai essayé plusieurs choses pour obtenir le Les données ajoutées en utilisant cela avec un objet dictionnaire

{ "data_bind" , MvcHtmlString.Create("options: optionSelected, optionsText: 'name', optionsValue: 'id', optionsCaption: 'Choose...'") } 

ce

"data_bind" = MvcHtmlString.Create("options: optionSelected, optionsText: 'name', optionsValue: 'id', optionsCaption: 'Choose...'") 

"data_bind" = Html.Raw("options: optionSelected, optionsText: 'name', optionsValue: 'id', optionsCaption: 'Choose...'") 

"data_bind" = Html.Raw(MvcHtmlString.Create("options: optionSelected, optionsText: 'name', optionsValue: 'id', optionsCaption: 'Choose...'")) 

Quoi que j'essaie, les guillemets simples sont remplacés par '. Ce qui donne?

Modifier

avère que knock-out ne dérange pas les citations et peut encore se lier. Les autres questions ne se rapportent pas aux attributs knockout et data. Dans les éléments de liste/d'entrée.

+0

http://stackoverflow.com/questions/14731421/output-single-quotes-in-razor-generated-javascript-string aussi http: // stackoverflow.com/a/9234496/392102 –

+0

Possible copie de [moteur de vue Razor appliquant automatiquement des citations?] (http://stackoverflow.com/questions/9234467/razor-view-engine-automatically-applying-quotes) –

+0

Oui, J'ai regardé à travers eux et comme vous pouvez le voir, j'ai essayé le solut des ions mais en vain. Merci d'avoir regardé. –

Répondre

2

Même si les guillemets simples sont échappés dans le HTML, cela n'affectera pas la liaison, qui les verra correctement comme guillemets simples.

ko.applyBindings({ 
 
    options: [{ name: 'first one', id: '1' }, 
 
      { name: 'second one', id: '2' }, 
 
      { name: 'third one', id: '3' }] 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script> 
 

 
<select data-bind="options: options, optionsText: &#39;name&#39;, optionsValue: &#39;id&#39;, optionsCaption: &#39;Choose...&#39;"> 
 
</select>

https://jsfiddle.net/oxtupfx8/

+0

Ah, intresting - Je vais y aller –

+0

Pour la victoire. Arg commence juste avec Knockout/C# donc me couper une pause. Il peut être un peu difficile de déboguer le knock-out alors j'ai juste supposé que c'était les citations. Merci de votre aide. –