Как использовать формат строки ShortDate с Html.TextBoxFor - PullRequest
4 голосов
/ 21 сентября 2010

Используя Entity Framework с MVC2, у меня есть ряд текстовых полей даты, которые я хочу отображать данные из модели в коротком формате даты, но я должен использовать Html.TextBoxFor, чтобы код обновления работал (имея попытался использовать HTML.Textbox, данные никогда не сохраняются в модель).

<%: Html.TextBoxFor(model => model.Item.Date, String.Format("{0:d}", Model.Item.Date))%>

Я пытался манипулировать выражением формата строки и добавил метаданные к частичному классу, сопоставленному с классом модели Entity Framework, однако все же я получаю следующее заполнение текстовых полей при визуализации формы:

01/01/2011 00:00:00 

вместо

01/01/2011

1 Ответ

16 голосов
/ 21 сентября 2010
<%: Html.EditorFor(model => model.Item.Date) %>

А на вашем представлении модель:

[DataType(DataType.Time)]  
[DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime Date { get; set; }

ОБНОВЛЕНИЕ:

Полный пример:

Модель:

public class MyModel
{
    public Item Item { get; set; }
}

public class Item
{
    [DataType(DataType.Time)]
    [DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
    public DateTime Date { get; set; }
}

Контроллер:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyModel
        {
            Item = new Item { Date = DateTime.Now }
        });
    }
}

Вид:

<%: Html.EditorFor(model => model.Item.Date) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...