【发布时间】:2015-04-14 21:28:25
【问题描述】:
我无法将嵌套模型的值返回到控制器,它们都是空值。
这是简化的架构:
//The viewModel being passed to the view
public class RunnerIndexViewModel
{
public RegisterViewModel User { get; set; }
public TrainerViewModel TrainerVM { get; set; }
public RunnerBase Runner { get; set; }
[Display(Name = "AddContact", ResourceType = typeof(MyRessources))]
public bool AddContact { get; set; }
}
public class RegisterViewModel
{
// various simple type properties here
}
public class TrainerViewModel
{
// various properties here
public Unit unit { get; set; }
public List<SelectListItem> ListStatut { get; set; }
}
public abstract partial class RunnerBase
{
// entity framework class with associations
}
public class RedRunner : RunnerBase
{
// entity framework class with associations
}
public class BlueRunner : RunnerBase
{
// entity framework class with associations
}
这是从控制器接收模型的主视图(简化):
@model Web.Models.Fournisseurs.FournisseurIndexViewModel
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.Partial("PartialTrainer", Model.TrainerVM)
@Html.Partial("PartialRunner", Model.Runner as RedRunner)
@Html.Partial("PartialUser", Model.User)
}
视图 PartialTrainer 和 PartialUser 没有什么特别之处,所以这里是从实体框架中获取基类的 PartialRunner 视图:
@model RunnerBase
@* Show Various fields from RunnerBase ... *@
@if (Model is RedRunner)
{
@* show properties specific to RedRunner *@
}
else if (Model is BlueRunner)
{
@* show properties specific to BlueRunner *@
}
从控制器中,我将 RedRunner 或 BlueRunner 传递给 Runner 属性。所有视图模型的所有字段都显示得很好,但是在提交表单时,我只设法获得了 AddContact 值......
如何从 Runner 类中获取其他视图模型的值?
【问题讨论】:
标签: c# asp.net-mvc entity-framework asp.net-mvc-5