刚刚接触mvc3 打算把原来的项目改为mvc3的
遇到一个小问题,就是在View里怎样输出短日期
原文是这样的:        <div class="editor-label">
            @Html.LabelFor(model => model.收到日期)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.收到日期, new { @class = "wdate", onfocus = "WdatePicker({ dateFmt: 'yyyy/M/d H:mm:ss' })" })
            @Html.ValidationMessageFor(model => model.收到日期)
        </div>输出文本框内容为(例):
2011/7/1 0:00:00现在我想只输出“2011/7/1”,以前在aspx中可以用<asp:TextBox ID="通知时间TextBox" runat="server" Text='<%# Bind("通知时间", "{0:yyyy-M-d}") %>' onfocus="My97Show()"  Width="90px" ValidationGroup="lv42"/>现在mvc3项目弄了半天也不明白,求高手指教

解决方案 »

  1.   

    model => model.收到日期.ToString("yyyy-MM-dd")
      

  2.   


    试过了,运行时抛出异常InvalidOperationException:模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。
      

  3.   

    model.收到日期,这个字段可以改用字符串类型,到时候,你取到时间的时候,换成yyyy-mm-dd到字符串,然后显示。
      

  4.   

    这个在你的 “WdatePicker” 中处理比较好,或者直接将 “收到日期”用文本格式,别用 DateTime 格式
      

  5.   

    可在对应类的日期字段上作如下更改:
    添加如下引用:
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    在对应段前增加:(如字段为ReceiveDate)
            [DataType(DataType.Date)]//使日期不显示时间部分
            public  DateTime ReceiveDate { get; set; }
    这样显示时将不显时时间部分。
      

  6.   

    坚接上贴:
    还有在网页中采用@Html.EditorFor(model => model.ReceiveDate)
    作为输入框,如采用Html.TextBoxFor没有此作用,仍需采用1楼等方法。