で使用することができます私はこれに似たMVCモデルMVC4テンプレートが唯一のフィールドへのアクセス
public class Model
{
public string Name {get;set;}
public int Number {get;set;}
}
を持っている私は
テンプレートは、単一のフィールドアクセス、プロパティへのアクセス、一緒に使用することができ、エラーを受け取ります次元配列のインデックス、または単一パラメータのカスタムインデクサ式。
モデルのラムダ式を変数に格納して、番号フィールドのラベルを作成しようとしたとき。
@Html.LabelFor(model => model.Name) // Works fine
@Html.LabelFor(model => model.Number) // Works fine
@{
Expression<Func<Offer, object>> nameExpression = model => model.Name;
Expression<Func<Offer, object>> numberExpression = model => model.Number;
}
@Html.LabelFor(nameExpression) // Works fine
@Html.LabelFor(numberExpression) // Error!
は、私が代わりにmodel => model.Number
の、ラムダ式がmodel => Convert(model.Number)
あるデバッガを使用して気づいたが、これは唯一のように、私が言うことができるものから、値の型に起こる:
例えば、私の見解では私が持っています私は整数(nullableとnullableではない)とDateTime
オブジェクトでテストしました。 ラムダ式のNodeType
はの文字列のため、Convert
と思われます。
私はエラーそのものの原因を知っていますが、コンパイラが何を評価するのかはわかりませんmodel=>model.Number
からmodel => Convert(model.Number)
までです。
ありがとうございます!
に翻訳され
Expression<Func<Model, int>>
を使用していることを確認することができますありがとう!私はこれに気付かなかったとは信じられません、それは愚かな間違いですが、私は今働くことにしました。 – florinszilagyi