【问题标题】:MVC3 EF Code First - JQuery IU Datapicker errorMVC EF 代码优先 - JQuery UI Datepicker 错误
【发布时间】:2011-11-02 01:49:58
【问题描述】:

当我从日期选择器中选择超过 12 天的日期时,我的 mvc3 应用程序出现问题,控制器获取日期时间“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 中的菜鸟),所以我们使用以下格式的日期:dd/mm/yyyy

我认为他认为我使用美国 mm/dd/yyyy 之类的日期

错误是 _db.SaveChanges() 中的 dbentityvalidationexception;

我不知道我必须在哪里进行更改

对不起,我的英语不好,请帮助我

【问题讨论】:

    标签: jquery asp.net asp.net-mvc-3 entity-framework


    【解决方案1】:

    这看起来确实像一个全球化问题..

    尝试将此添加到您的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 2013-03-16
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多