C# 在MVC原因中显示日期时间;模板只能与字段访问错误一起使用;
在我的项目中,我有一个由EF6创建的内容实体模型C# 在MVC原因中显示日期时间;模板只能与字段访问错误一起使用;,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,datetime,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Datetime,在我的项目中,我有一个由EF6创建的内容实体模型 public partial class Content { public Content() { this.Comments = new HashSet<Comment>(); } public int Id { get; set; } public string Subject { get; set; } [DataType(DataType.MultilineT
public partial class Content
{
public Content()
{
this.Comments = new HashSet<Comment>();
}
public int Id { get; set; }
public string Subject { get; set; }
[DataType(DataType.MultilineText)]
public string Brief { get; set; }
[UIHint("tinymce_full"), AllowHtml]
public string MainText { get; set; }
[DataType(DataType.DateTime)]
public System.DateTime DateOfPublish { get; set; }
[DataType(DataType.ImageUrl)]
public string SmallImageUrl { get; set; }
[DataType(DataType.ImageUrl)]
public string BigImageUrl { get; set; }
public string KeyWords { get; set; }
[DataType(DataType.DateTime)]
public System.DateTime DateOfExpire { get; set; }
public string AutherUserName { get; set; }
public long VisitVCount { get; set; }
public string Visible { get; set; }
public int ContentGroupId { get; set; }
public long LikeCount { get; set; }
public virtual ContentGroup ContentGroup { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
因此,我在我的视图(内容视图)中调用了此函数,因此我尝试使用此函数以波斯语显示日期。因此,我将英文日期传递给了我的函数,如您所见:
@{
ViewBag.Title = "Index";
DateConverter objconverter = new DateConverter();
}
<td>
@Html.DisplayFor(modelItem => objconverter.ConvertToPersianToShow(item.DateOfPublish.Date ))
</td>
致以最诚挚的问候在内容类上创建仅getter属性
public partial class Content
{
public string PersianToShow
{
get
{
return ConvertToPersianToShow(this.DateOfPublish);
}
}
}
然后在razor视图中使用此选项:
@Html.DisplayFor(modelItem => modelItem.PersianToShow)
出现的错误是因为处理表达式的MVC输入帮助程序的输入表达式类型有限(因为它们需要对不同类型的表达式进行内部缓存,而且通常处理表达式树的成本很高。编译调用)
错误消息是受支持的某些表达式树类型的结果。我不想在我的模型域中使用此类类。它是表示层。因此我认为这不是一个好主意?!!您有一个视图模型属性(要渲染的数据),而在该属性之上使用getter属性所做的一切就是将其格式化以满足所需的渲染要求。“此类”是什么意思?我的意思是“公共部分类内容”,我认为此类是表示层的一部分,因此您也将实体类用作viewmodel。i、 e.@Html.DisplayFor中的modelItem(modelItem…通常,数据/业务类有一个特定的投影到一个视图模型类中,该视图模型类只满足UI呈现/验证。在这种情况下,因为您也将内容类用作viewmodel,这是相同的原则。您可以为此创建一个viewmodel。但它将是整个内容(或者你需要的任何东西)+getter。
public partial class Content
{
public string PersianToShow
{
get
{
return ConvertToPersianToShow(this.DateOfPublish);
}
}
}
@Html.DisplayFor(modelItem => modelItem.PersianToShow)