Сохранение значения DateTime не работает на производственном сервере MVC3 - PullRequest
1 голос
/ 14 сентября 2011

Это работает на моем компьютере разработчика, но не на моем рабочем сервере.

Я просто пытаюсь зарегистрировать пользователя, но дату рождения необходимо отформатировать dd/mm/yyyy.Например: 28/09/1980.

Это очень хорошо работает на моем компьютере разработчика, я могу зарегистрироваться, и он правильно сохраняет дату рождения.

Но при запуске точно такого же кода на продуктесервер Я получаю сообщение об ошибке:

The value '29/08/1980' is not valid for Fecha de Nacimiento (dd-mm-aaaa):.

Что я должен искать и что может быть причиной правильной сохранения даты на моем компьютере разработчика, но отказываться работать хорошо на производстве?

Если я переключу значения на 09/28/1989, он будет работать нормально, но из-за способа форматирования дат здесь, в Боливии, мне нужно использовать День, затем месяц, а затем Год.

Вот метод действия [HttpPost], которыйзапускается, когда пользователь нажимает кнопку отправки:

[HttpPost]
public ActionResult Register(UserModel model)
{
    EFCityRepository cityRepo = new EFCityRepository();
    model.Cities = new List<SelectListItem>();
    foreach (var city in cityRepo.FindAllCities())
    {
        model.Cities.Add(new SelectListItem { Text = city.Name, Value = city.CityId.ToString(), Selected = true });
    }

    EFGenderRepository genderRepo = new EFGenderRepository();
    model.Genders = new List<SelectListItem>();
    foreach (var gender in genderRepo.FindAllGenders())
    {
        model.Genders.Add(new SelectListItem { Text = gender.Name, Value = gender.GenderId.ToString(), Selected = true });
    }

    if (ModelState.IsValid)
    {
        Domain.User user = Mapper.Map<UserModel, Site.Domain.User>(model);
        user.UserRoleId = 1;
        user.EmailVerificationCode = SecurityHelpers.GenerateRandomToken();
        user.IsActive = true;
        user.LancesSpent = 0;
        user.GoldShopPointsSpent = 0;
        user.LanceCreditBalance = 25;
        user.GoldShopCreditBalance = 0;
        user.DateOfRegistry = DateTime.Now;
        user.LastDateLogin = DateTime.Now;

        var result = userRepo.CreateUser(user);

        if (result == UserCreationResults.Ok)
        {
            SecurityHelpers.SendVerificationEmail(user.Email, user.UserId, user.EmailVerificationCode);
            FormsAuthentication.SetAuthCookie(model.Login, false /* createPersistentCookie */);
            return RedirectToAction("Index", "Home");
        }
        else
        {
            switch (result)
            {
                case UserCreationResults.UsernameExists:
                    ModelState.AddModelError("", "El nombre de usuario ya esta siendo utilizado.");
                    break;
                case UserCreationResults.EmailAlreadyExists:
                    ModelState.AddModelError("", "Ese correo ya esta en uso.");
                    break;
                case UserCreationResults.NicknameAlreadyExists:
                    ModelState.AddModelError("", "El nickname ya esta siendo utilizado.");
                    break;
                case UserCreationResults.UnknownError:
                    ModelState.AddModelError("", "Algo durante el registro. Por favor intente de nuevo.");
                    break;
                default:
                    break;
            }
        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}

}

1 Ответ

4 голосов
/ 14 сентября 2011

Установите культуру в вашем web.config:

<globalization culture="es-BO" uiCulture="es-BO" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...