web-dev-qa-db-ja.com

Razor View Engine:式ツリーには動的な操作を含めることはできません

私はこれに似たモデルを持っています:

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

そして、コントローラーで印刷しようとすると例外が発生します

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

これはエラーです:

Exception: An expression tree may not contain a dynamic operation

誰かが私にこれを修正する方法についていくつかの手がかりを与えることができるなら、私は本当に感謝します!

159
femseks

あなたには型付けされていない見方があるように思えます。デフォルトでは、MVC3 RCのRazorビューはdynamicと入力されます。ただし、ラムダは動的メンバーをサポートしていません。モデルを強く入力する必要があります。ビューファイルの上部に追加します

@model SampleModel
281
marcind

これの原因である一般的なエラーは追加するときです

@Model SampleModel

代わりにページの上部に

@model SampleModel
87
felbus

これで link @modelについて説明し、抜粋を参照してください:

@model(小文字の「m」)は、ビューの上部でモデルタイプを宣言するためのRazorビューの予約キーワードです。名前空間も配置しました。例:@model MyNamespace.Models.MyModel

ファイルの後半で、@Model.Attribute(大文字の「M」)で必要な属性を参照できます。

7
Charlestown

ビューにdynamicと入力されているようです。ビューに正しいタイプを設定すると、エラーが消えます。

6
Esteban Araya

この行を使用する前に(htmlヘルパーを強く入力して)この行

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

型を強く表示するには、ページにモデルを含める必要があります。

@model SampleModel
4
Kuber

このエラーは、@ modelの代わりに@@ modelを使用していたために発生しました...私の場合は、コピー&ペーストエラーです。 @modelに変更すると、修正されました。

0
JosephDoggie