MVC4模板只能用于字段访问

 周月醉 发布于 2023-02-10 10:31

我有一个类似于此的MVC模型

public class Model
{
     public string Name {get;set;}
     public int Number {get;set;}
}

我收到错误

模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式.

尝试为数字字段创建标签时,将模型lambda表达式存储在变量中.

例如,在我看来,我有:

@Html.LabelFor(model => model.Name) // Works fine
@Html.LabelFor(model => model.Number) // Works fine

@{
    Expression> nameExpression = model => model.Name;
    Expression> numberExpression = model => model.Number;
}
@Html.LabelFor(nameExpression) // Works fine
@Html.LabelFor(numberExpression) // Error!

我注意到使用lambda表达式的调试器model => Convert(model.Number),而不是model => model.Number,但这只发生在我可以告诉的值类型中,因为我已经使用整数(可空和非可空)和DateTime对象进行了测试.似乎NodeTypelambda表达式是Convert,对于字符串来说Member access.

我知道这个错误本身的原因,但我不知道是什么原因导致编译器来评估model=>model.Numbermodel => Convert(model.Number).

谢谢!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有