.net 部分和显示
第一个我的型号:.net 部分和显示,.net,asp.net-mvc,templates,.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> 我的观点: public class Order { public DateTime Da
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>
我的观点:
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>
显示部分:
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>
@Html.LabelFor(x=>x):@Html.DisplayFor(x=>x)
标签未渲染。DisplayFor将显示日期。如果我向Order.Date添加一个属性
[DisplayName(“Order Date”)]
,这可能也是相关的。我做错什么了?我只想将html约定应用于所有模型属性以进行显示。我是不是搞错了?这是因为您的部分基本上是针对DateTime
的强类型,而不是Order
。这仍然适用于DisplayFor
,因为DateTime
只会在自身上调用ToString()
。但是,它没有名称或固有标签,因此LabelFor
对您没有任何帮助
您应该这样做,实际上是将订单
实例作为模型
传递到分部中。然后:
@Html.LabelFor(m => m.Date): <strong>@Html.DisplayFor(m => m.Date)</strong>
@Html.LabelFor(m=>m.Date):@Html.DisplayFor(m=>m.Date)
会帮你找到你想要的 我不想为我的每一个模型都创建Partials,只是为了简单地用html包装我的显示字段。显然,我的做法是错误的。我只想调用@Html.Something(x=>x.Date)或@Html.Something(Model.Date),并让它使用预定义的模板。我可以使用Shared/DisplayTemplates实现这一点,但我必须为每种属性类型创建一个模板。这些简单的东西应该就在你的视野中。如果您正在寻找一种标准化显示的方法,您可以研究使用显示模板,但使用
LabelFor
等东西也会遇到同样的问题,即,除非有更大的上下文,否则您不能这样做--信息不是来自特定属性,而是来自模型本身。此外,我的partial没有@model
设置,因此我认为“日期时间的强类型”是不正确的。简单明了的一点是,LabelFor
从模型的元数据获取标签。除非您与实际模型交互,LabelFor
将不起作用。