Commençons à travailler avec .NET et MVC (1). J'ai un problème où, dans mon action d'ajout, la date entrée pour une raison quelconque se termine par 1/1/0001 au lieu de ce qui est entré, causant ainsi un débordement de date.ASP.NET MVC Date de création du champ en tant que 1/1/0001
Dans mon modèle, ce champ ("Ajouté") est de type datetime et n'autorise pas les valeurs nulles.
Dans mon contrôleur je:
public ActionResult Add()
{
Instance instance = new Instance()
{
Added = DateTime.Now,
Active = true
};
return View(instance);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(Instance instance)
{
if (ModelState.IsValid)
{
try
{
System.Diagnostics.Trace.Write("test");
instanceRepository.Add(instance);
instanceRepository.Save();
return RedirectToAction("Details", new { id = instance.InstanceID });
}
catch
{
ModelState.AddRuleViolations(instance.GetRuleViolations());
}
}
return View(instance);
}
Et à mon avis je:
<div class="editor-label">
<%= Html.LabelFor(model => model.Added) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Added,String.Format("{0:g}",Model.Added))%>
<%= Html.ValidationMessageFor(model => model.Added) %>
Quand j'aller aux instances/Ajouter la valeur par défaut est correctement réglée, mais dès que Je soumets la date se transforme en 1/1/0001 (d'après ce que j'ai compris, cela indique qu'il était soit null ou dans un format non reconnaissable)
Lorsque je débogue et palce une montre sur Request.Form je vois La date d'arrivée est encodée ie Request.Form {Added = 4% 2f9% 2f2010 + 8% 3a24% 3a39 + AM} - est-ce un problème? Je ne connais probablement pas assez d'informations pour déterminer de manière concluante pourquoi cela échoue, mais si quelqu'un pouvait fournir de bonnes astuces de débogage sur la façon de déterminer où la date soumise est utilisée, je l'apprécierais vraiment.
Html.TextBoxFor ne peut pas être dans MVC 1 que vous avez écrit – Gregoire
Ugh - Je dois être en utilisant MVC 2 - avait à la fois installé et pensé que j'étais en utilisant 1 mais cela va juste montrer comment je suis nouveau à ce ... – engil
Vous avez raison - les propriétés de System.Web.MVC montrent la version 2.0 - merci pour la tête Gregoire – engil