C# 局部视图窗体上的HiddenFor不包含任何元素

C# 局部视图窗体上的HiddenFor不包含任何元素,c#,asp.net,asp.net-mvc,razor,views,C#,Asp.net,Asp.net Mvc,Razor,Views,我有一个包含表单的局部视图。我试图在一个隐藏的输入元素中传递列表,这样当存在无效的模型状态时,它可以正确地发回。问题是隐藏的输入实体不包含任何数据(它不是空的,只是空的) “我的父视图”包含一个视图模型,该视图模型包含两个视图模型(1个用于子视图,1个用于父视图) 在模型状态无效的情况下,我的POST controller操作执行以下操作 @model APGame.Client.ViewModels.CreateUserModel @using (Html.BeginForm("Users"

我有一个包含表单的局部视图。我试图在一个隐藏的输入元素中传递列表,这样当存在无效的模型状态时,它可以正确地发回。问题是隐藏的输入实体不包含任何数据(它不是空的,只是空的)

“我的父视图”包含一个视图模型,该视图模型包含两个视图模型(1个用于子视图,1个用于父视图)

在模型状态无效的情况下,我的POST controller操作执行以下操作

@model APGame.Client.ViewModels.CreateUserModel

@using (Html.BeginForm("Users", "Admin", FormMethod.Post, new {role = "form", autocomplete = "off"}))
{

    @Html.HiddenFor(m => m.Roles)
    @Html.HiddenFor(m => m.Institutions)
    @Html.HiddenFor(m => m.InvestigatorGroups)
    @Html.HiddenFor(m => m.Participation)
    @Html.HiddenFor(m => m.FamilyGroups)
var userModel = new UsersModel()
{
    UserData = TempData["UserData"] as IEnumerable<UserTableModel>,
    CreateModel = model
};

return View("Users", userModel);
var userModel=new UsersModel()
{
UserData=TempData[“UserData”]作为IEnumerable,
CreateModel=模型
};
返回视图(“用户”,userModel);

我总是必须列出我尝试执行的对象的每个属性,这与您正在执行的绑定逻辑相同

考虑如何缩短时间,您可以在自己的观点中尝试:

@Html.EditorForModel(m => m.Roles, "Role", new {@class="hiddenProperty"})
并确保包含此CSS以隐藏这些属性:

.hiddenProperty
{
display: none;
}
$('.hiddenProperty').hide();
或者使用jQuery隐藏属性:

.hiddenProperty
{
display: none;
}
$('.hiddenProperty').hide();

展示你的模型。什么是
角色
机构
等?它们听起来像集合属性,这意味着它们不会绑定它们都是IEnumerabley您无法将复杂对象分配给隐藏输入,更不用说复杂对象的集合查看生成的html-每个隐藏输入都有
value=“System.Web.Mvc[SelectListItem]”