2016-03-15 91 views
-1

我試圖讓月和年出現,而不是dd/mm/yyyy。 我的代碼如下:如何才能使月份和年份顯示ASP.NET MVC

繼承人的型號代碼

[Display (Name = "ValidFrom")] 
     [DataType(DataType.Date)] 
     [DisplayFormat(DataFormatString = "{0:MMM-yyyy}" , ApplyFormatInEditMode = true)] 
     public System.DateTime ValidFrom { get; set; } 

這是視圖文件

<div class="form-group"> 
     @Html.LabelFor(model => model.ValidFrom, htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.EditorFor(model => model.ValidFrom, new { htmlAttributes = new { @class = "form-control" } }) 
      @Html.ValidationMessageFor(model => model.ValidFrom, "", new { @class = "text-danger" }) 

     </div> 
    </div> 

有沒有辦法,我只能讓MM/YYYY出現?

+1

你的datepicker在哪裏? – Liam

+1

@Liam我認爲他並不是真的指日期選擇器,而是指向',請參閱此帖http://stackoverflow.com/questions/7372038/is-there-any-way-要改變輸入類型的日期格式 – SOfanatic

+0

@Liam對此表示抱歉。 – John

回答

1

應用此屬性。我已經測試過這個並且工作正常。

[DisplayFormat(DataFormatString ="{0:MM/yyyy}",ApplyFormatInEditMode =true)] 
0

從用戶的角度來看,你有什麼應該工作的罰款。但是,如果輸入由支持dateHTML5輸入類型的瀏覽器呈現爲type="date",則瀏覽器控件將覆蓋顯示。對於每月和每年都沒有HTML5控件,所以如果您需要以這種方式進行格式化,則需要確保使用標準的type="text"輸入。

這就是說,我真的不確定發佈的值是否會綁定回MVC。它可能,但也可能不會。如果綁定不正確,則可能需要發佈到字符串屬性,然後將其強制爲DateTime。你可以這樣做:

public string ValidFromString { get; set; } 

public DateTime ValidFrom 
{ 
    get 
    { 
     DateTime validFrom; 
     return DateTime.TryParse(ValidFromString, out validFrom) 
      ? validFrom 
      : default(DateTime); 
    } 
    set { ValidFromString = value.ToString("MMM-yyyy"); } 
} 

然後,你會張貼到ValidFromString,堅持ValidFrom

相關問題