Ich habe eine einfache Webanwendung gemacht und es funktioniert ordnungsgemäß auf lokalen db. Nach der Veröffentlichung gibt es einen Fehler mit Datumzeit verbunden:ASP.NET MVC DateTime Parse
System.FormatException: String was not recognized as a valid DateTime.
Der Code in Ansichtsmodell sieht wie folgt aus:
[Required]
[ValidTime]
[Display(Name = "Game time")]
public string Time { get; set; }
[Required]
[FutureDate]
[Display(Name = "Game date")]
public string Date { get; set; }
public DateTime GetDateTime()
{
return DateTime.Parse(string.Format("{0} {1}", Date, Time));
}
Controller-Code:
public ActionResult Create(GameFormViewModel viewModel)
{
if (!ModelState.IsValid)
return View("GameForm", viewModel);
var userId = User.Identity.GetUserId();
var game = new Game
{
TeamA = viewModel.TeamA,
TeamB = viewModel.TeamB,
DateTime = viewModel.GetDateTime(),
LeagueId = viewModel.Id,
AdminId = userId
};
_context.Games.Add(game);
_context.SaveChanges();
return RedirectToAction("MyLeagues", "Leagues");
}
Warum ist es Arbeit auf lokalen db und Warum gibt es einen Fehler nach der Veröffentlichung?
Update: Das ist meine FutureDate Klasse
public class FutureDate : ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime datetime;
var isvalid = DateTime.TryParseExact(Convert.ToString(value),
"dd-mm-yyyy",
CultureInfo.CurrentCulture,
DateTimeStyles.None,
out datetime);
return (isvalid && datetime >= DateTime.Now.AddDays(-1));
}
}
Sie können einen Haltepunkt in der Zeile 'DateTime = viewModel.GetDateTime() 'setzen und auch einen Beobachter zu viewModel hinzufügen, um die Werte zu überprüfen, noch besser, den Screenshot ... – Hackerman
@Jakubb, wahrscheinlich die Quelle von Das Problem sind die verschiedenen Gebietsschemas auf Ihrer lokalen Arbeitsstation und auf dem Server. –
Auch könnte das Format des Datums über die Eingabe und das Format des Datums von der Parse-Methode erwartet werden. Welches Format von Datum und Uhrzeit geben Sie auf der Benutzeroberfläche ein? Betrittst du Zeit als Militärzeit oder 3:45 PM-Format? –