2016-10-05 1 views
0

ich so etwas wie dies versuche:Concatenate C# Strings JavaScript/Knockout-Funktionen/Observablen

string temp = ""; 

<script type="text/javascript"> 
if (@min >= @customDataBindArray+'().length') { 
    for (i = 0; i < @columns.Count; i++) 
    { 
     @temp+="<td>&nbsp;</td>"; 
    } 

    for (i = 0; i < @min - @customDataBindArray+'().length'); i++) 
    { 
     $('.List tr:last').after(@Html.Raw("<tr>" + @temp + "</tr>")); 
    } 
} 
</script> 

Ich sehe einige Probleme hier

  1. ich einen System.NullReferenceException für @temp bekommen, aber ich stellte es auf eine leere Zeichenfolge, Entfernen @Html.Raw wird die Ausnahme entfernen, nach dem Entfernen @Html.Raw ->@temp ist nicht in die endgültige HTML-Datei geschrieben
  2. Ich bin versuchen, eine beobachtbare @customDataBindArray+'().length zu verketten, wird dies in Folge MyObservable+'().length'

Vielleicht können Sie mir eine helfende Hand geben?

+0

Ihren verwirrend clientseitigen und serverseitigen Code. Tu das nicht. – SLaks

+2

Ich würde vorschlagen, nicht C#/Razor JavaScript zu generieren. Senden Sie stattdessen Ihre Daten mit ajax an die Seite und generieren Sie die Observables aus diesen Daten. –

+0

hat meinen Beitrag aktualisiert. – ASfdsa33

Antwort

0

Sie können keine Daten zurück zum Ansichtsmodell Objekt von JavaScript zuweisen

<script type="text/javascript"> 
var temp = ''; 
    if (@min >= @customDataBindArray+'().length') { 
     for (i = 0; i < @columns.Count; i++) 
     { 
      temp+="<td>&nbsp;</td>"; 
     } 

     for (i = 0; i < @min - @customDataBindArray+'().length'); i++) 
     { 
      $('.List tr:last').after("<tr>" + temp + "</tr>"); 
     } 
    } 
    </script> 

dies funktionieren könnte

+0

Mit '@customDataBindArray +'(). Length'' wird 'MyObservable + '(). Length'' – ASfdsa33

+0

die beste dies zu tun, um die Werte in versteckten @html zu speichern Tags und verwenden dosumentread und lesen Sie es von jquery und verwenden Sie die Werte in der Funktion. sonst wird es sehr schmutzig und schlechte Programmierung – Emil

+0

Kann es sein, gibt es eine Methode wie '@ Html.Raw (...)', die diese Zeichenfolge verketten kann, so dass es eine normale Variable aussehen wird? – ASfdsa33