Mvc og required
Jeg har et andet problem med required og dato felter.Det jeg helst vil have er et dato tekstfelt (i edit visning), som så viser den dato, der er fra databasen.
Altså hvor jeg i Models viser følgende;
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}", ApplyFormatInEditMode = true)]
public System.DateTime? DateOfBirth { get; set; }
Og så vil jeg i Controlleren vise datoen, som er i databasen.
DateTime dateofbirth = (DateTime)employee.DateOfBirth;
ViewBag.DateOfBirth = dateofbirth.ToShortDateString();
Når jeg run to cursor, så kan jeg se, at den tager den rigtige dato ind, den vises bare ikke, der står stadig dd-mm-åååå.
--------------------------
Næste jeg har forsøgt er med en alm tekstfelt, hvor der står følgende i modellen:
[Required]
[DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}", ApplyFormatInEditMode = true)]
Og I controlleren fjerner jeg så ViewBag for DateOfBirth.
Nu kommer den så rigtig frem med i feltet at skrive 31-12-1966,
Men når jeg så forsøger at gemme, får jeg at vide, at "The field DateOfBirth must be a date." (nu taler den lige pludselig engelsk med mig (jeg har en dansk sproget google browser).
Jeg har her så forsøgt at tilføje følgende i Web.config
<system.web>
<compilation debug="true" targetFramework="4.7.2" />
<httpRuntime targetFramework="4.7.2" />
<globalization fileEncoding="utf-8" requestEncoding="utf-8" culture="da-DK" uiCulture="da-DK" />
</system.web>
Og I Global.asax.cs
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
protected void Application_BeginRequest()
{
CultureInfo info = new CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.ToString());
info.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy";
info.DateTimeFormat.FullDateTimePattern = "dd-MM-yyyy hh:mm:ss";
System.Threading.Thread.CurrentThread.CurrentCulture = info;
}
}
det hjælper ingenting.
Når jeg så forsøger at google mig, kan jeg se en del af problemet (for 127 år siden) og hver løsning de kommer frem med, har ikke hjulpet mig noget som helst - udover, at Index nu viser datoerne på en meget mærkeligmåde. Som f.eks. 31-00-1966 (i db står den til 31-12-1966). Det sidste tror jeg helt sikkert er en fejl40, i forhold til jeg har prøvet at ændre dit og dat i diverse jquery filer, som der er blevet foreslået for at løse ovennævnte problem.
Hvis I ikke kan finde hoved og hale i det, jeg har skrevet, så bare spørg :-)
Vh
Simsen