我在mvc3应用程序中遇到问题,当我从日期选择器中选择过去12天的日期时,控制器获取日期时间的默认日期“1/01/0001”
继承我的模特
public virtual int ID { set; get; }
[Required]
[Display(Name="Cantidad de CD4")]
[Range(400,1200, ErrorMessage="La cantidad de CD4 debe estar entre 400 y 1200")]
public virtual int Cantidad_CD4 { set; get; }
[DataType(DataType.Date)]
public DateTime Fecha { set; get; }
我的观点 @model PacientMVC.Models.CD4
@{
ViewBag.Title = "Create";
}
`
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>CD4</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Cantidad_CD4)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Cantidad_CD4)
@Html.ValidationMessageFor(model => model.Cantidad_CD4)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Fecha)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Fecha)
@Html.ValidationMessageFor(model => model.Fecha)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>`
然后我的控制器方法
[HttpPost]
public ActionResult Create(int pacientID, CD4 newCD4)
{
try
{
// TODO: Add insert logic here
var objpacient = _db.Pacients.Single(r => r.ID == pacientID);
objpacient.CD4S.Add(newCD4);
_db.SaveChanges();
return RedirectToAction("Details", "Pacient", new { id = pacientID });
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
}
}
return View();
}
//}
//catch
//{
// return View();
//}
}
我和我的jquery一样
$(document).ready(function () {
$('.date').datepicker({ dateFormat: "dd/mm/yy" });
});
我为DATETIME制作了以下模板
@model System.DateTime
@Html.TextBox("", Model.ToString("dd/MM/yyyy"), new { @class = "date" })
我来自西班牙(和MVC中的noob)所以我们使用以下格式的日期:dd / mm / yyyy
我认为他认为我使用的日期类似于美国mm / dd / yyyy
错误是_db.SaveChanges();中的dbentityvalidationexception;
我不知道我必须在哪里进行更改
抱歉,我的英语不好请帮助我答案 0 :(得分:0)
尝试将此添加到您的web.config:
<system.web>
<globalization culture="es-ES" uiCulture="es-ES" />
...
</system.web>
可能会起作用:)
Scott Hanselman写了一篇关于此事的博文:
http://www.hanselman.com/blog/GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx
还有关于全球化的DatePicker的例子。
旁注:在将实体保存到数据库之前,还应使用ModelState.IsValid
。