2010-08-11 26 views
13

Estoy creando un archivo CSS dinámico en ASP.NET MVC2, y ahora encuentro una excepción. Todo estaba funcionando bien, pero de repente estoy recibiendo este mensaje de error de 2 variables:ASP.NET MVC "La llamada es ambigua" Error (System.IO.TextWriter.Write)

La llamada es ambigua entre los métodos o propiedades siguientes: 'System.IO.TextWriter.Write (String, params Object [])' y 'System.IO.TextWriter.Write (char [])'

Un ejemplo del código es:

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

Este error se resuelve, sin embargo, cuando sustituyo <% = ViewData.Model.FontColor%> con <% Response.Write (ViewData.Model.FontColor); %>

Parece que parece haber algún tipo de problema que diferencie las dos formas diferentes del método System.IO.TextWriter.Write, pero no estoy seguro de lo que puedo hacer además de escribir la respuesta. Método de escritura.

+0

¿Cuál es el tipo de las propiedades FontSize y FontColor de su modelo? – marcind

+0

¿Tu FontColor es moldeable implícitamente a 'string'? – kbrimington

Respuesta

14

intenta convertir el miembro de su modelo para un tipo específico como:

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

Los tipos son sólo mi suposición .. echarlo a los tipos adecuados de curso;)

+3

Gracias, esto funciona. ¿Hay alguna razón para que esto ocurra con solo 2 campos dentro de la tabla (cuando todos los demás tienen el mismo tipo de datos varchar)? – Swamp56

+1

¿Quiere decir 2 valores de campos de filas o las dos columnas completas? ¿Estás seguro de que los campos no son nulos? La mayoría de las veces, esto ocurre cuando esos valores son nulos o vacíos. así que generalmente pruebo los valores antes de mostrarlos de la siguiente manera: '<% if (ViewData.Model.FontColor! = null) {%><% = (cadena) ViewData.Model.FontColor%><%}%>' – Bellash

1

Mi problema era que los valores en la vista se estaban configurando en una clase base y olvidé tener el nuevo controlador heredado del controlador base.

Los valores nulos resultantes devueltos por la ViewBag crearon la ambigüedad.

FYI agregar el tipo de conversión como se describe en la otra respuesta hará que el error desaparezca, pero no resuelve el problema subyacente en el que los valores no se configuraron correctamente en el controlador.

Cuestiones relacionadas