部分和显示

时间:2013-02-26 18:26:30

标签: .net asp.net-mvc templates

首先是我的模特:

public class Order
{
  public DateTime Date {get;set;}
}

我的观点:

@model Order
@Html.Partial("Display", Model.Date)

显示部分:

@Html.LabelFor(x => x): <strong>@Html.DisplayFor(x => x)</strong>

标签未呈现。 DisplayFor渲染日期很好。也可能是相关的,如果我向Order.Date [DisplayName("Order Date")]添加一个属性,它就不值得尊敬。有什么我做错了吗?我只是想将html约定应用于所有我的模型属性以供显示。我是不是错了?

1 个答案:

答案 0 :(得分:3)

这是因为您的部分内容基本上是DateTime的强类型,而不是Order。这仍然适用于DisplayFor,因为DateTime只会调用ToString()。但是,它没有名称或固有标签,因此LabelFor对您无能为力。

您应该这样做,实际上是将Order实例作为Model传递给部分。然后:

@Html.LabelFor(m => m.Date): <strong>@Html.DisplayFor(m => m.Date)</strong>

会得到你想要的东西。