У меня есть небольшая проблема в asp.net MVC.Я собираюсь опубликовать весь код, а затем я объясню его.
ViewModel.
public class EventFormViewModel
{
[Required]
public string studentId{ get; set; }
[Required]
public string location{ get; set; }
[Required]
public string Date { get; set; }
[Required]
public string Time { get; set; }
// Date and Time == DataTime.
public DateTime GetDateTime()
{
var Datetime = DateTime.Parse(string.Format("{0} {1}", Date, Time));
return Datetime;
}
}
Когда состояние модели недопустимо, фреймворк MVC - MVCФреймворк вызвал этот метод действия и использует отражение для создания этого viewmModel (все свойства только не метод.) и в этом случае GetDateTime()
является методом.Почему я получаю это исключение?
Контроллер
[Authorize]
[HttpPost]
public ActionResult NewEvent(EventFormViewModel viewModel)
{
if (!ModelState.IsValid)
{
return RedirectToAction("Index","Home");
}
var _event= new _Event
{
studentId = User.Identity.GetUserId(),
DateTime = viewModel.GetDateTime(),
location = viewModel.location
};
_Dbcontext._Events.Add(_event);
_Dbcontext.SaveChanges();
return RedirectToAction("Index","Home");
}
Когда я запускаю свой код.Я получаю эту ошибку.
![enter image description here](https://i.stack.imgur.com/cZV1A.png)
Проблема: В моем viewModel отмечены все обязательные поля.S0, когда я отправляю пустую форму, я получаю это исключение "Строка не была распознана как действительное значение даты / времени".