나는 오류MVC4 템플릿은 필드 액세스와 함께 사용할 수 있습니다
템플릿 필드 액세스, 속성 액세스에서만 사용할 수 있습니다 , 단일에게 수신이
public class Model { public string Name {get;set;} public int Number {get;set;} }
유사한 MVC 모델을 차원 배열 인덱스 또는 단일 매개 변수 사용자 지정 인덱서 식.
변수에 저장된 모델 람다 식으로 숫자 필드의 레이블을 만들려고 할 때.
@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)
있는 디버거를 사용하여 발견하지만, 이것은 단지, 나는 무엇을 말할 수에서 값 유형에 발생합니다
예를 들어, 내보기에 내가 가진 필자는 정수 (null 입력 가능 및 null 허용 불가)와 DateTime
개체를 테스트했습니다. 람다 식의 경우 NodeType
은 이고 문자열은 Member access
인 것으로 보입니다.
나는 오류 자체의 원인을 알고 있지만, 컴파일러가 무엇 때문에 model=>model.Number
에서 model => Convert(model.Number)
으로 평가되는지 알 수 없습니다.
감사합니다.
로 번역되어
Expression<Func<Model, int>>
를 사용할 필요가 올바른 표현을 얻고 싶은 경우에 당신은 디버거
와 표현을보고 그것을 확인하실 수 있습니다 감사! 나는 이것을 깨닫지 못했다고 믿을 수 없다. 어리석은 실수이지만, 나는 지금 일하도록한다. – florinszilagyi