これは私の開発マシンでは動作しますが、実際のプロダクションサーバでは動作しません。DateTime値の保存は、実動MVC3サーバでは機能しません
私はユーザーを登録しようとしていますが、生年月日はdd/mm/yyyy
である必要があります。例:28/09/1980
。
これは私の開発マシンでうまく動作します。登録することができ、生年月日が正しく保存されます。
しかし、製品サーバー上の正確な同じコードを実行しているとき、私はエラーを取得する:
The value '29/08/1980' is not valid for Fecha de Nacimiento (dd-mm-aaaa):.
私が探してどうあるべきか、日付が私のdevのマシン上でcorrectl保存させることができるものが、プロダクションでうまく動作しない?
値を09/28/1989
に切り替えると、うまく動作しますが、ボルヴィアで日付の書式が設定されているため、[日]、[月]、[年]を使用する必要があります。
[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);
}
}
ここでは、ユーザが送信ボタンをクリックしたときに実行さ
[HttpPost]
対処方法はありますか? MVCまたはデータベースに保存しますか?プロンプトが示唆するように、28-08-1980を試しましたか? –保存を実行してエラーを生成するコードを含めると役立ちます。しかし、私が推測しなければならない場合、私はサーバー上のロケール設定を確認することをお勧めします - それはあなたのdevボックスと同じロケールを使用していない可能性があります。 – Jason
@Jon Skeet:エラーは本番でのみ発生するため、実際にどこで起動しているかを見るためにブレークポイントを置くことはできません。私が推測しなければならないことは、エラーがActionMetodにあると言うでしょう。 –