Razor View Engine:表达式树中不得包含动态操作。

17 浏览
0 Comments

Razor View Engine:表达式树中不得包含动态操作。

我有一个类似于这样的模型:\n

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

\n在我的控制器中,我尝试打印出@Html.TextBoxFor(p => p.Product.Name)时出现异常。\n这是错误信息:\n异常:表达式树中不能包含动态操作。\n如果有人能给我一些修复这个问题的线索,我将非常感激!

0
0 Comments

在这个链接中,解释了一个问题。问题是在Razor视图中出现了一个错误的用法。具体描述如下:

Razor视图引擎中,关键字model(小写m)是用来在视图顶部声明模型类型的。你将命名空间和模型类型放在了一起,如MyNamespace.Models.MyModel

之后在代码的其他地方,你可以使用.Attribute(大写M)来引用你想要的属性。

这就是我的问题所在。如果你没有仔细观察,Visual Studio往往会将你输入的内容转换为大写的M。这真的很烦人。

解决方法是确保在视图中正确使用关键字model,并且注意大小写敏感的问题。确保在视图顶部正确声明模型类型,并在其他地方使用正确的大小写来引用属性。这样就可以避免这个错误。

0
0 Comments

Razor View Engine:表达式树中不能包含动态操作的问题

在使用Razor View Engine时,有时会遇到一个常见的错误:“表达式树中不能包含动态操作”。这个错误出现的原因是将“SampleModel”写成“sampleModel”导致的。

解决这个问题的方法很简单,只需要将代码中的“SampleModel”改为正确的大小写,即可解决这个错误。

另外,还有一种可能导致这个错误的情况是在代码中使用了“model”而不是“Model”。虽然这种情况下代码可以正常编译,但在运行时会出现错误。

总结一下,当我们在使用Razor View Engine时遇到“表达式树中不能包含动态操作”的错误时,需要仔细检查代码中的大小写是否正确,并确保使用了正确的变量名。

0
0 Comments

问题出现的原因是Razor视图引擎默认将视图视为dynamic类型,而lambda表达式不支持dynamic成员。解决方法是将视图的模型进行强类型化。在视图文件的顶部添加SampleModel,确保是大写的"M"。如果没有模型,可以考虑创建一个空的模型。

0