sintaxis pages mvc asp.net-mvc .net-4.0 razor

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