首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >@Html.ValueFor(x=>x.PropertyName)和@Model.PropertyName之间的区别是什么

@Html.ValueFor(x=>x.PropertyName)和@Model.PropertyName之间的区别是什么
EN

Stack Overflow用户
提问于 2013-05-24 23:00:39
回答 2查看 9.7K关注 0票数 20
@Html.ValueFor(x=>x.PropertyName) 
@Model.PropertyName

看起来这两个Razor命令做的是完全一样的事情。使用一个比另一个有什么特殊的情况或好处吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-24 23:04:30

ValueFor将调用用于呈现该属性所具有的类型的现有模板。默认情况下,此模板可能与ToString()一样简单,但您可以定义模板的任何内容。

@Model.PropertyName将简单地将值表示为字符串。

票数 20
EN

Stack Overflow用户

发布于 2013-05-24 23:15:06

@Html.ValueFor(x => x.PropertyName)在幕后调用了很多代码和反射。

它将允许您自定义呈现值的方式,然后在整个站点上具有一致的格式。例如,如果您的属性是用DisplayFormatAttribute装饰的。

@Model.PropertyName直接获取属性的值,对其调用ToString(),然后对结果进行转义。不会发生其他格式设置。

为了进行说明,您可能会看到以下内容:

[DisplayFormat(DataFormatString="{0:C}")]
public decimal PropertyName = 1234.56;

@Html.ValueFor(x => x.PropertyName)  =>  "£1,234.56"
@Model.PropertyName                  =>  "1234.56"
票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16738010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档