【问题标题】:Display template not displaying with UIHint attribute显示模板不显示 UIHint 属性
【发布时间】:2015-07-06 11:17:46
【问题描述】:

我正在尝试 MVC 4 中的显示模板。

我在 Views\Shared\DisplayTemplates\MyDate.cshtml 中创建了我的显示模板

@model System.DateTime

<span>  
    @Model.ToString("dd / MM / yyyy")
</span>  

我尝试在我的视图中使用它:

@Html.DisplayFor(Model => Model.TestDate, "MyDate")

到目前为止一切顺利。现在我想对 UIHint 属性做同样的事情。所以我在我的模型中添加了另一个字段:

[UIHint("MyDate")]
public DateTime Yesterday = DateTime.Now.AddDays(-1);

所以我想我可以像这样简单地将它添加到我的视图中:

@Html.DisplayFor(Model => Model.Yesterday)

但是哦,不,我的显示模板 MyDate.cshtml 中的标记无处可见...我做错了什么??

【问题讨论】:

  • 难道你使用field 而不是property?试试public DateTime Yesterday { get { return DateTime.Now.AddDays(-1);}}
  • 谢谢!你说得对,它的作用是property
  • 我不知道为什么,只要是field就可以了,只要我做@Html.DisplayFor(Model =&gt; Model.Yesterday, "MyDate")

标签: c# asp.net asp.net-mvc razor


【解决方案1】:

您的问题是您使用的是field,而不是property

这是你应该做的:

public DateTime Yesterday { get { return DateTime.Now.AddDays(-1); } }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-27
    • 2011-07-11
    • 2019-06-07
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多