J'ai 2 modèles dans mon exemple MVC 3, SimpleModel
et ComplexModel
, illustré ci-dessous:
public class SimpleModel
{
public string Status { get; set; }
}
public class ComplexModel
{
public ComplexModel()
{
Simple = new SimpleModel();
}
public SimpleModel Simple{ get; set; }
}
J'ai des vues définies pour ces modèles:
_SimplePartial.cshtml
:
@model SimpleModel
@Html.LabelFor(model => model.Status)
@Html.EditorFor(model => model.Status)
et Complex.cshtml
:
@model ComplexModel
@using (Html.BeginForm()) {
@Html.Partial("_SimplePartial", Model.Simple)
<input type="submit" value="Save" />
}
Après avoir soumis le formulaire, avec une valeur aléatoire est entré en Status
champ, la valeur n'est pas lié à mon modèle. L' Status
champ est - NULL
quand je suis à la vérification du modèle dans mon action de contrôleur:
[HttpPost]
public ActionResult Complex(ComplexModel model)
{
// model.Simple.Status is NULL, why ?
}
Pourquoi n'est-il pas appliqué ? Je ne veux pas hériter de modèles. Dois-je écrire mon modèle personnalisé liants pour de tels cas simple ?
Ce qui concerne.