3

我試圖在DateTime屬性中應用格式,但它不工作。我有這個:DataFormatString爲DateTime

[DataType(DataType.Date)] 
[DisplayFormat(DataFormatString = "dd/MM/yyyy", ApplyFormatInEditMode = true)] 
public DateTime DataInscricao { get; set; } 

我試過在很多方面做(改變DataFormatString),但他們都沒有工作。我也使用datepicker作爲日期字段。

我也試圖從jQuery的應用的格式:

$("#DataInscricao").datepicker({dateFormat: 'dd-mm-yy'}); 

它幾乎工程,該格式在文本框應用,但是當我試圖保存日期格式丟失。如果我輸入的日期類似12/01/2013,則更改爲01/01/0001。在GridView中,格式不同(mm-dd-yyyy),並且TextBox的蒙版工作錯誤。

我真的不知道該怎麼做才能使它工作。有沒有人可以幫我解決這個問題?

謝謝!

UPDATE

這是控制器中返回要編輯的實體的方法。

public ActionResult Editar(int id) 
{ 
    var agendamento = _repository.GetSingle(a => a.Id == id); 
    return View("Criar", agendamento); 
} 

這是視圖:

@model PNCQ2013.Domain.Entities.AgendamentoManutencao 
@{ 
    ViewBag.Title = PNCQ2013.Domain.Resources.ItemPatrimonio.ItemPatrimonio.TitleAgendamento + " :: PNCQ - Programa Nacional de Controle de Qualidade"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<div class="section"> 
@using (Ajax.BeginForm("Salvar", "ManutencaoPreventiva", null, new AjaxOptions { HttpMethod = "POST", LoadingElementId = "loading" }, new { @class = "formee", @id = "frmAgendamentoManutencao", enctype = "multipart/form-data" })) 
{ 
    @Html.HiddenFor(m => m.Id) 
    <div class="box"> 
     <div class="title"> 
      @PNCQ2013.Domain.Resources.ItemPatrimonio.ItemPatrimonio.TitleAgendamento 
     </div> 
     <div class="content nopadding"> 
      <div class="grid-4-12"> 
       @Html.LabelFor(m => m.ItemPatrimonioId) 
       @Html.DropDownListFor(m => m.ItemPatrimonioId, new SelectList(PNCQ2013.Web.Content.Helpers.Util.ListaItemPratrimonio().OrderBy(a => a.NumeroPatrimonio), "Id", "NumeroPatrimonio"), Resources.Geral.Selecione) 
       @Html.ValidationMessageFor(m => m.ItemPatrimonioId) 
      </div> 
      <div class="grid-4-12"> 
       @Html.LabelFor(m => m.DataInscricao) 
       @Html.TextBoxFor(m => m.DataInscricao, new { @class = "datepicker" }) 
       @Html.ValidationMessageFor(m => m.DataInscricao) 
      </div> 
      <div class="grid-4-12"> 
       @Html.LabelFor(m => m.FrequenciaManutencaoId) 
       @Html.DropDownListFor(m => m.FrequenciaManutencaoId, PNCQ2013.Web.Content.Helpers.HtmlExtensions.ToSelectList(typeof(PNCQ2013.Domain.Enumerators.FrequenciaManutencao), ""), Resources.Geral.Selecione) 
       @Html.ValidationMessageFor(m => m.FrequenciaManutencaoId) 
      </div> 
     </div> 
    </div> 
} 

+1

這聽起來像有在'文本框指定字符串中的日期問題'DateTime',而不是一個格式問題,你會期望格式化問題將其設置爲01/12/2013。你能發佈視圖和控制器代碼嗎? –

回答

2

嘗試這樣,

[DataType(DataType.Date)] 
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
public DateTime DataInscricao { get; set; } 
+1

我已經試過這個,但沒有工作。謝謝! –

+0

@Sravan,這不適用於編輯/創建視圖。 – Bellash