asp.net-mvc - pages - razor views
Motor Razor View: un árbol de expresiones puede no contener una operación dinámica (6)
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
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!
En este link 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").
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í.
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 dinámicos. Tienes que escribir fuertemente tu modelo. En la parte superior de tu archivo de vista agrega
@model SampleModel
Parece que tu vista está escrita en forma dynamic
. Establezca el tipo correcto en la vista y verá desaparecer el error.
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