@Html.ValueFor(x=>x.PropertyName)
@Model.PropertyName
看起来这两个 Razor 命令做了完全相同的事情。使用其中一种是否有任何特殊情况或好处?
@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"
ValueFor
将调用存在的模板来呈现属性具有的类型。默认情况下,此模板可能与 一样简单ToString()
,但您可以将任何内容定义为模板。
@Model.PropertyName
将简单地将值显示为字符串。