Razor视图引擎:expression式树可能不包含dynamic操作
我有一个类似于这样的模型:
public class SampleModel { public Product Product { get; set; } }
而在我的控制器,我得到一个例外,试图打印出来
@Html.TextBoxFor(p => p.Product.Name)
这是错误的:
Exception: An expression tree may not contain a dynamic operation
如果任何人都可以给我一些线索,如何解决这个问题,我会很感激!
在我看来,你有一个无types的观点。 默认情况下,MVC3 RC中的Razor视图被input为dynamic
。 但是,lambda不支持dynamic成员。 你必须强烈地input你的模型。 在视图文件的顶部添加
@model SampleModel
导致这种情况的一个常见错误是当你添加
@Model SampleModel
在页面的顶部,而不是
@model SampleModel
在这个链接解释关于@model,请参阅摘录:
@model
(小写“m”)是Razor视图中的保留关键字,用于在视图顶部声明模型types。 你也把名字空间,例如:@model MyNamespace.Models.MyModel
稍后在文件中,可以使用
@Model.Attribute
(大写字母“M”)引用所需的属性。
看起来像你的看法是键入dynamic
。 在视图上设置正确的types,你会看到错误消失。
在使用之前(强typeshtml助手进入视图)这一行
@Html.TextBoxFor(p => p.Product.Name)
你应该把你的模型join到你的页面中来进行强types的查看。
@model SampleModel
这个错误发生在我身上,因为我有@@ model而不是@model …在我的情况下复制和粘贴错误。 更改为@model修复了我。