2013-02-13 61 views
1

我有一个网页,显示从sql server视图通过实体框架和WCF服务拉回的数据表。在Razor页面中不能正确显示日期?

在我的sql服务器视图中,其中一列是日期字段。我有一些困难让它显示没有时间部分在我的网页上(时间部分,如果没有在数据库中,但从阅读它似乎是因为它是一个DateTime属性,当我产生我的实体视图的时间部分将被添加。

所以基本上在我的模型,我有以下的(OBV的名字就在这里嘲笑):

型号

public List<MySqlView> MySqlView { get; set; } 

控制器

model.MySqlView = MyWCFService.GetMeAlltheData(
         //pass in some values start date, end date 
       ); 

因此,我可以看到我想要返回的一切,然后将模型传递给我的视图。

要建立我的表,然后在视图我做了以下内容:

CSHTML

<tbody> 
      @foreach (var item in Model.MySqlView) 
      { 
       <tr> 
        <td class="table-data"> 
         @Html.DisplayFor(modelItem => item.Date) 
        </td> 
        //More stuff in table close loop 

我已经试过item.Date.ToShortDateString()而是抛出异常

模板可以仅用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。

+0

你必须使用一个帮手?我已经有更多的成功显示数据(特定日期)没有帮手 – 2013-02-13 22:34:33

回答

0

使用ViewModel类将视图中的模型与视图分离,几乎解决了所有接口问题。我越多地使用MVC,越是认识到更好的方法就是MVVmC。这是一个很好的例子。而不是强制键入模型本身,请创建一个ViewModel,该视图模型使用MyDateTimeItem.ToString("MMMM dd, yyyy")向视图提供正确格式化日期值的字符串属性。

0

您可以查看/共享/ DisplayTemplates创建DateTime.cshtml与以下内容

@model DateTime 

@Html.Label("", Model.ToShortDateString())