c# - @Html.Value of(x=>x.Property Name) 和@Model.Property Name 有什么区别

标签 c# asp.net asp.net-mvc asp.net-mvc-4 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"

关于c# - @Html.Value of(x=>x.Property Name) 和@Model.Property Name 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16738010/

相关文章:

javascript - 如何在 ASP.NET 控件的 OnClientClick 属性中使用 javascript 变量

asp.net-mvc - 如何在 ASP.NET MVC RC1 中使用 FileResult 返回 304 状态

c# - COM:如何检索 CLSID? Prog-Id可以用吗?

c# - 使用 LinQ 创建表时无法确定...的 SQL 类型

c# - 如何在关闭父表单之前加载子表单而不关闭它们

c# - 将匿名类型列表到接口(interface)列表

c# - 如何找到对程序集的依赖

asp.net - 如何使用.NET设置文件夹权限?

c# - await 运算符在 ASP.NET 上的行为与在 ASP.NET CORE 上的行为不同吗?

javascript - 如何将值从 <a> ( anchor 标记)传递到 React js 中的函数?