Motor Razor View: un árbol de expresiones puede no contener una operación dinámica

Tengo un modelo similar a esto:

public class SampleModel { public Product Product { get; set; } } 

Y en mi controlador recibo una excepción tratando de imprimir

 @Html.TextBoxFor(p => p.Product.Name) 

Este es el error:

 Exception: An expression tree may not contain a dynamic operation 

Si alguien puede darme algunas pistas sobre cómo solucionar esto, ¡realmente lo agradecería!

Me parece que tienes una vista sin tipo. Por defecto, las vistas Razor en MVC3 RC se escriben como dynamic . Sin embargo, las lambdas no admiten miembros dynamics. Tienes que escribir fuertemente tu modelo. En la parte superior de tu archivo de vista agrega

 @model SampleModel 

Un error común que es la causa de esto es cuando agrega

 @Model SampleModel 

en la parte superior de la página en lugar de

 @model SampleModel 

En este enlace explica sobre @model, mira un extracto:

@model (minúscula “m”) es una palabra clave reservada en las vistas Razor para declarar el tipo de modelo en la parte superior de su vista. También ha puesto el espacio de nombres, por ejemplo: @model MyNamespace.Models.MyModel

Más adelante en el archivo, puede hacer referencia al atributo que desea con @Model.Attribute (mayúscula “M”).

Parece que tu vista está escrita en forma dynamic . Establezca el tipo correcto en la vista y verá desaparecer el error.

Antes de usar (escriba fuertemente html helper en la vista) esta línea

 @Html.TextBoxFor(p => p.Product.Name) 

Debería incluir su modelo en su página para hacer una vista de tipo fuerte.

 @model SampleModel 

Este error me pasó porque tenía @@ modelo en lugar de @model … copiar y pegar el error en mi caso. Cambiar a @model lo solucionó por mí.