2011-03-21 920 views
9

completa texto de error:HTML ya no ayudantes capaces de deducir argumentos de tipo

The type arguments for method 'System.Web.Mvc.Html.DisplayExtensions.DisplayFor<TModel,TValue>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TValue>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly. 

Sólo recientemente empezó a ocurrir, aunque no creo que hice cualquier cambio que pudiera afectar esta funcionalidad. Lanza un error intellisense VS, pero las páginas funcionan bien.

Html helpers que no son "Para" los ayudantes funcionan bien, solo son los que contienen estas expresiones.

El marcado infractor (1 ejemplo de 100s):

<%: Html.DisplayFor(model => model.PortfolioName) %>  

Directiva Página:

<%@ Page Language="C#" Inherits="ViewPage<My.Namespace.PortfolioViewModel>" %> 

Ver Modelo:

namespace My.Namespace 
{ 
    public class PortfolioViewModel 
    { 
     [Required(ErrorMessage = " ")] 
     [DataType(DataType.Text)] 
     [DisplayName("Portfolio Name:* ")] 
     public string PortfolioName { get; set; } 
    } 
} 
+0

¿Qué quiere decir con 'Lanza error al compilar, pero las páginas funcionan bien '? ¿Cómo pueden funcionar las páginas si no puedes compilar? ¿Es solo un error de Visual Studio Intellisense en modo de diseño? –

+0

Sí, eso es correcto. Debería haber sido más claro. –

+0

Parece que no puedo replicar el problema. ¿Qué ocurre si intentas especificar explícitamente los argumentos de tipo? – DEHAAS

Respuesta

4

Suena estúpido, lo sé, pero tienen ¿Intentó cerrar y reabrir VS?

+0

Oh ya, he intentado cerrar/volver a abrir, limpiar/reconstruir, cuadruplicó todas mis referencias, etc. –

0

El método Html.DisplayFor encontrará una plantilla de visualización adecuada para el tipo especificado. La excepción parece un poco extraña, pero podría indicar que no se ha registrado ninguna plantilla de visualización para el tipo de cadena.

Es posible que desee probar Html.LabelFor para fines de prueba. ¿Tiene una plantilla de visualización especial para cadenas?

+1

Tengo el mismo resultado con DisplayFor, HiddenFor, TextboxFor, DropDownListFor, etc., etc. –

+0

Acabo de hacer una rápida projekt de prueba MVC imprimirá el texto sin formato a la secuencia html si no existe una plantilla de visualización especial. Al menos para la cadena que es el caso. – DEHAAS

2

Cuando me encontré con este problema anteriormente, fue después de que actualizamos las versiones MVC y las referencias web.config no se actualizaron correctamente. Esto significaba que las vistas se basaban en referencias a versiones anteriores de los métodos de extensión HTML.

Mire sus referencias y asegúrese de que la versión sea correcta.

+0

¿Puede explicar en términos más simples para que un principiante también pueda solucionar este problema? Por favor, elabore por favor. – Unbreakable

Cuestiones relacionadas