2010-08-11 5 views
13

Ich erstelle eine dynamische CSS-Datei in ASP.NET MVC2, und ich bin jetzt auf eine Ausnahme stoßen. Alles funktioniert gut, aber ganz plötzlich erhalte ich diese Fehlermeldung für 2 Variablen:ASP.NET MVC "Der Aufruf ist mehrdeutig" Fehler (System.IO.TextWriter.Write)

Der Aufruf ist nicht eindeutig zwischen den folgenden Methoden oder Eigenschaften: ‚System.IO.TextWriter.Write (string, params object [])‘und 'System.IO.TextWriter.Write (char [])'

Ein Beispiel für den Code ist:

#pageMaster .CCResultsText2 { 
    font-size: <%= ViewData.Model.FontSize %>; 
    color: <%= ViewData.Model.FontColor %>; 
} 

Dieser Fehler behoben wird, aber wenn ich ersetzen <% = ViewData.Model.FontColor%> mit <% Response.Write (ViewData.Model.FontColor); %>

Es scheint, dass es ein Problem gibt, das die zwei verschiedenen Formen der System.IO.TextWriter.Write-Methode unterscheidet, aber ich bin nicht genau sicher, was ich neben der Antwort schreiben kann. Schreibmethode.

+0

Was ist der Typ der FontSize- und FontColor-Eigenschaften Ihres Modells? – marcind

+0

Ist Ihre FontColor implizit in "string" umwandelbar? – kbrimington

Antwort

14

Versuchen Sie, Ihre Modellelement auf eine bestimmte Art zu werfen wie:

#pageMaster .CCResultsText2 { 
    font-size: <%= (int)ViewData.Model.FontSize %>; 
    color: <%= (string)ViewData.Model.FontColor %>; 
} 

Die Typen sind nur meine Vermutung .. warf es auf die richtige Art natürlich;)

+3

Danke, das funktioniert. Gibt es einen Grund, dass dies mit nur 2 Feldern innerhalb der Tabelle auftreten würde (wenn alle anderen den gleichen varchar-Datentyp haben)? – Swamp56

+1

Meinst du 2 Zeilen Felder Werte oder die gesamten zwei Spalten? Sind Sie sicher, dass Felder nicht null sind? Meistens tritt dies auf, wenn diese Werte null oder leer sind! daher teste ich Werte normalerweise, bevor ich sie wie folgt zeige: '<% if (ViewData.Model.FontColor! = null) {%><% = (string) ViewData.Model.FontColor%><%}%>' – Bellash

1

war mein Problem, dass die Werte in der Ansicht wurden in einer Basisklasse gesetzt und ich habe vergessen, den neuen Controller vom Basiscontroller erben.

Die resultierenden NULL-Werte, die von ViewBag zurückgegeben wurden, erzeugten die Mehrdeutigkeit.

Wenn Sie die Typumwandlung hinzufügen, wie in der anderen Antwort beschrieben, verschwindet der Fehler, aber das zugrunde liegende Problem, bei dem die Werte nicht korrekt im Controller eingestellt wurden, wird nicht gelöst.

Verwandte Themen