У меня возникла проблема с возвратом значений контроллеру при использовании ViewModel.MVC ViewModel возвращает ArgumentNullException
Для ясности я упростил приведенный ниже код, в котором у оригинала есть еще много полей.
Когда страница загружена, значение в скрытом поле соответствует ожидаемому. Однако, когда форма отправлена, значение в поле не отправляется, и вместо этого я получаю ArgumentNullException.
Просьба сообщить, что я делаю неправильно.
Посмотреть
@model Project.Models.SCView
@using (Html.BeginForm("ScorecardEdit"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.FV.ID)
<input type="submit" value="Save" />
}
Модель
public class FixView
{
public int ID { get; set; }
[DisplayFormat(DataFormatString = "{0:ddd dd/MM/yyyy}")]
public DateTime MatchDate { get; set; }
}
public class SCView
{
public FixView FV { get; set; }
public SCView()
{
this.FV = new FixView();
}
}
Контроллер
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ScorecardEdit(SCView ReturnSC)
{
}
Вы не отправляете SCView на сервер. Вы отправляете целое число. – mason
@mason Спасибо, но я не понимаю. Этот парень [ссылка] (http://stackoverflow.com/questions/27191691/viewmodel-returns-null-on-postback-mvc-5) смог использовать тот же формат для обновления свойств без ошибок. – Xtravia9
Попробуйте добавить дату ввода к вашему представлению и изменить метод действия, чтобы принять 'FixView' вместо' SCView'. – mason