Первый код MVC3 EF - ошибка JQuery IU Datapicker - PullRequest
0 голосов
/ 02 ноября 2011

У меня проблема в приложении mvc3, когда я выбираю дату за 12-м днем ​​из средства выбора даты, контроллер получает дату по умолчанию datetime "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" })

Я из Испании (и noob в MVC), поэтому мы использовали дату в следующем формате: дд / мм / гггг

Я думаю, он считает, что я использую дату, например, США мм / дд / гггг

ошибка - исключение dbentityvalidation в _db.SaveChanges ();

Я не знаю, где мне нужно внести изменения

извините за мой плохой английский, пожалуйста, помогите мне

1 Ответ

0 голосов
/ 02 ноября 2011

это действительно похоже на проблему глобализации ..

попробуйте добавить это в ваш web.config:

<system.web>
    <globalization culture="es-ES" uiCulture="es-ES" />
    ...
</system.web>

это может просто сработать:)

Скотт Хансельман написал обширное сообщение в блоге об этом:
http://www.hanselman.com/blog/GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx
Есть также примеры использования DatePicker с глобализацией.


О sidenote: вы также должны использовать ModelState.IsValid перед сохранением вашей сущности в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...