@Html.ValueFor(x=>x.PropertyName)
@Model.PropertyName
这两个 Razor 命令似乎执行完全相同的操作。使用其中一个有什么特殊情况或好处吗?
最佳答案
@Html.ValueFor(x => x.PropertyName)
在底层调用了很多代码和反射。
它将允许您自定义值的呈现方式,然后在整个站点中采用一致的格式。
例如,如果您的属性装饰有 DisplayFormatAttribute
。
@Model.PropertyName
实际上是直接获取属性的值,对其调用 ToString(),然后 HTML 转义结果。不会进行其他格式化。
为了说明,您可能会看到:
[DisplayFormat(DataFormatString="{0:C}")]
public decimal PropertyName = 1234.56;
@Html.ValueFor(x => x.PropertyName) => "£1,234.56"
@Model.PropertyName => "1234.56"
关于c# - @Html.Value of(x=>x.Property Name) 和@Model.Property Name 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16738010/