2010-08-11 13 views
13

Sto creando un file CSS dinamico in ASP.NET MVC2 e ora sto riscontrando un'eccezione. Tutto stava funzionando benissimo, ma tutto ad un tratto mi sto ricevendo questo messaggio di errore per 2 variabili:ASP.NET MVC "La chiamata è ambigua" Errore (System.IO.TextWriter.Write)

La chiamata è ambigua tra le seguenti metodi o proprietà: 'System.IO.TextWriter.Write (String, params oggetto [])' e 'System.IO.TextWriter.Write (char [])'

Un esempio del codice è:

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

Questo errore viene risolto, tuttavia, quando sostituisco <% = ViewData.Model.FontColor%> con <% Response.Write (ViewData.Model.FontColor); %>

Sembra che ci sia un qualche tipo di problema che distingue le due diverse forme del metodo System.IO.TextWriter.Write, ma non sono esattamente sicuro di cosa posso fare oltre a scrivere la risposta. Scrivi metodo.

+0

Qual è il tipo di proprietà FontSize e FontColor del modello? – marcind

+0

Il tuo FontColor è implicitamente attribuibile a 'string'? – kbrimington

risposta

14

Provate a lanciare il vostro membro del modello a un tipo specifico come:

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

I tipi sono solo la mia ipotesi .. gettarlo ai corretti tipi di corsi;)

+3

Grazie, questo funziona. C'è una ragione per cui ciò si verifica con solo 2 campi all'interno della tabella (quando tutti gli altri hanno lo stesso tipo di dati varchar)? – Swamp56

+1

Intendi i valori dei campi di 2 righe o le intere due colonne? Sei sicuro che i campi non siano nulli? La maggior parte delle volte, si verifica quando quei valori sono nulli o vuoti! quindi di solito collaudo i valori prima di mostrarli come segue: '<% if (ViewData.Model.FontColor! = null) {%><% = (stringa) ViewData.Model.FontColor%><%}%>' – Bellash

1

Il mio problema era che i valori nella vista venivano impostati in una classe base e ho dimenticato di ereditare il nuovo controller dal controller di base.

I valori nulli risultanti restituiti da ViewBag hanno creato l'ambiguità.

FYI aggiungendo il cast del tipo descritto nell'altra risposta farà scomparire l'errore ma non risolve il problema sottostante in cui i valori non venivano impostati correttamente nel controller.

Problemi correlati