Вот простой рабочий пример:
@model SimpleTest.Controllers.SimpleViewModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>Simple Test</title>
</head>
<body>
<div>
@using (Html.BeginForm()) {
// Use whatever format string that suits your purposes:
@Html.TextBoxFor(model => model.Dated, "{0:d MMM yyyy}")
<input type="submit" value="Submit value"/>
}
</div>
</body>
</html>
И теперь код контроллера (только для проверки решения):
using System;
using System.Web.Mvc;
namespace SimpleTest.Controllers {
public class DateController : Controller {
public ActionResult Index(SimpleViewModel model) {
// First time you visit the page, there is no view data
// (model.Dated will be equal to DateTime.MinValue) so we set
// the date to "now".
//
// When you submit data through the form in the view and henceforth,
// the value of model.Dated will be resolved from view data,
// and we simply pass it back to the view again so that the result is
// visualized.
var date = model.Dated == DateTime.MinValue
? DateTime.Now
: model.Dated;
return View(new SimpleViewModel {
Dated = date
});
}
}
public class SimpleViewModel {
public DateTime Dated { get; set; }
}
}
Если вы попытаетесь отредактировать значение даты в текстовом поле, вы найдете t он правильно разрешен связующим устройством по умолчанию и передается действию в контроллере.
Используйте одну из перегрузок DateTime.ToString() (например, DateTime.ToString (String, IFormatProvider)). Или, возможно, еще более уместно - отформатируйте дату до локализованной строки уже в контроллере и передайте ее в виде (через модель представления). –
Попробуйте этот ответ http://stackoverflow.com/a/7026781/492258 –
В исходном коде я вижу, что значение ввода задано как это значение = "09/12/2025 23:00:00", I знайте, что это должно быть как это значение = «2014-10-10». Я не знаю, как исправить i, я добавил значение «2014-10-10» в помощнике, но это не помогло. – AnotherGeek