Проблемы с DateTime, появляется с 00:00:00 - PullRequest
3 голосов
/ 01 декабря 2011

У меня есть база данных с типом DateTime для даты рождения, когда я регистрирую пользователя.

Когда я получаю свои данные обратно, чтобы редактировать форму регистрации, у меня есть мой Razor, например:

@Html.TextBoxFor(model => model.Birthdate)

Дата показывается примерно так: 28.05.1983 00: 00: 00

Я хочу только дату рождения, очевидно.В моем контроллере у меня есть это:

User userset = db.User.Find(id);
return View(userset);

Очень просто ... Может ли кто-нибудь помочь мне решить это?

Ответы [ 3 ]

3 голосов
/ 01 декабря 2011

Установите аннотацию данных DisplayFormat над свойством в вашей модели.

public class User
{
    [DisplayFormat(DataFormatString = "{0:dd/MM/yy}", ApplyFormatInEditMode = true)]
    public DateTime Birthdate { get; set; }

    ...
}

Тогда вместо использования @Html.TextBoxFor(..) используйте @Html.EditorFor(...).

Подробнее см. На странице DisplayFormatAttribute MSDN .

Если вы сгенерировали свою модель данных с помощью EF, вы можете просто создать метакласс для своего класса, чтобы применять аннотации данных. Например, если мой файл базы данных называется MyDB.edmx, создайте файл класса друзей с именем MyDB.cs. Затем внутри я бы расширил класс User, добавив к нему класс метаданных и указав аннотацию данных в метаклассе:

[MetadataType(typeof(UserMetaData))]
public partial class User{ }

public class UserMetaData
{
   [DisplayFormat(DataFormatString = "{0:dd/MM/yy}", ApplyFormatInEditMode = true)]
   public DateTime Birthdate { get; set; }
}

См. пост Скотта Гу о проверке , в основном раздел 'Но что, если мы используем графический инструмент для наших отображений ORM?

2 голосов
/ 01 декабря 2011

Вы можете сделать что-то подобное, используя Html.TextBox вместо Html.TextBoxFor.

@Html.TextBox("Birth date", String.Format("{0:dd/MM/yyyy}", Model.Birthdate))
0 голосов
/ 01 декабря 2011

DatePicker от jQuery - лучший подход для получения ввода даты от пользователя. Особенно полезно избегать путаницы в формате даты.

Подробнее о: http://blogs.msdn.com/b/stuartleeks/archive/2011/01/25/asp-net-mvc-3-integrating-with-the-jquery-ui-date-picker-and-adding-a-jquery-validate-date-range-validator.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...