J'ai un problème pour renvoyer des valeurs au contrôleur lors de l'utilisation d'un ViewModel.MVC ViewModel renvoie ArgumentNullException
Pour plus de clarté j'ai simplifié le code ci-dessous où l'original a beaucoup plus de champs.
Lorsque la page est chargée, la valeur dans le champ masqué est comme prévu. Toutefois, lorsque le formulaire est soumis, la valeur dans le champ n'est pas envoyée et à la place, j'obtiens une exception ArgumentNullException.
S'il vous plaît pouvez-vous me dire ce que je fais de mal.
Voir
@model Project.Models.SCView
@using (Html.BeginForm("ScorecardEdit"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.FV.ID)
<input type="submit" value="Save" />
}
Modèle
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();
}
}
Contrôleur
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ScorecardEdit(SCView ReturnSC)
{
}
Vous ne publiez pas de SCView sur le serveur. Vous publiez un nombre entier. – mason
@mason Merci, mais je ne comprends pas. Ce gars [link] (http://stackoverflow.com/questions/27191691/viewmodel-returns-null-on-postback-mvc-5) était capable d'utiliser le même format pour mettre à jour les propriétés sans erreur. – Xtravia9
Essayez d'ajouter une entrée de date à votre vue et changez votre méthode d'action pour accepter un 'FixView' au lieu de' SCView'. – mason