Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何绑定此模型?_C#_.net_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

C# 如何绑定此模型?

C# 如何绑定此模型?,c#,.net,asp.net-mvc,asp.net-mvc-3,C#,.net,Asp.net Mvc,Asp.net Mvc 3,我有这些视图模型 public class MasterFrmVm { public Guid Id { get; set; } public IList<FrmVm> FrmVms { get; set; } public MasterFrmVm() { RewardTierFrmVm = new List<RewardTierFrmVm>(); } } public class FrmVm { pu

我有这些视图模型

public class MasterFrmVm
{
    public Guid Id { get; set; }
    public IList<FrmVm> FrmVms { get; set; }

    public MasterFrmVm()
    {
         RewardTierFrmVm = new List<RewardTierFrmVm>();
    }
}

public class FrmVm
{
    public Guid Id { get; set; }
    public IList<GroupedStoreVm> GroupedStoresVm { get; set; }

    public FrmVm()
    {
         GroupedStoresVm = new List<GroupedStoreVm>();
    }
 }

 public class GroupedStoreVm
 {
     public string CountryName { get; set; }
     public string CountryId { get; set; }
     public IList<StoreGroupingVm> StoreGroupingVms { get; set; }

     public GroupedStoreVm()
     {
          StoreGroupingVms = new List<StoreGroupingVm>();
     }
 }

 public class StoreGroupingVm
 {
      public string Name { get; set; }
      public Guid Id { get; set; }
      public IList<StoreVm> StoreVms { get; set; }
 }

 public class StoreVm
 {
      public Guid Id { get; set; }
      public string Name { get; set; }
 }


 @foreach (var f in Model.FrmVm )
 {
      @Html.Partial("GenerateTier", f)
 }


//GenerateTier
     @model FrmVm
     <ul class="storeTree">  
     @for (int i = 0; i < Model.GroupedStoresVm.Count; i++)
     {
                     <li>
                        <input type="checkbox" name="@Model.GroupedStoresVm[i]" value="@Model.GroupedStoresVm[i].CountryId" />@Model.GroupedStoresVm[i].CountryName
                        <ul>
                              @for (int x = 0; x < Model.GroupedStoresVm[i].StoreGroupingVms.Count; x++)
                            {
                                <li>
                                   @Html.CheckBox(Model.GroupedStoresVm[i].StoreGroupingVms[x].Name , false, new { value = Model.GroupedStoresVm[i].StoreGroupingVms[x].Id }) @Model.GroupedStoresVm[i].StoreGroupingVms[x].Name                                
                                    <ul>
                                       @for (int z = 0; z < @Model.GroupedStoresVm[i].StoreGroupingVms[x].StoreVms.Count; z++)
                                       {
                                           <li>@Html.CheckBox(Model.GroupedStoresVm[i].StoreGroupingVms[x].StoreVms[z].Name, false)@Model.GroupedStoresVm[i].StoreGroupingVms[x].StoreVms[z].Name  </li>
                                       }
                                    </ul>
                                 </li>                                      
                            }                    
                        </ul>                 
                     </li>        
                }
                </ul>
我正在使用jquery并序列化它,然后通过Ajax发送它

编辑

我还忘了提到FrmVm是另一个视图模型,因为它也可以有很多

@foreach (var f in Model.FrmVm)
{
     @Html.Partial("GenerateTier", f)
}
那么我上面展示的代码是什么呢。现在添加到我的代码中

编辑2

这是我在firebug中看到的

FrmVm%5Bd06a6c21-1796-4fb5-9af5-cbf973c6c820%5D.a=a
&FrmVm%5Bd06a6c21-1796-4fb5-9af5-cbf973c6c820%5D.a=false

&FrmVm%5Bd06a6c21-1796-4fb5-9af5-cbf973c6c820%5D.3=70563225-2718-40ec-8a71-a01500a66183
&FrmVm%5Bd06a6c21-1796-4fb5-9af5-cbf973c6c820%5D.3=false

&FrmVm%5Bd06a6c21-1796-4fb5-9af5-cbf973c6c820%5D.1=dbd43e7e-86e4-4fa1-9e48-a01a00db151c
&FrmVm%5Bd06a6c21-1796-4fb5-9af5-cbf973c6c820%5D.1=false
结构将是(当然,它们将是复选框)


我不知道为什么在我全部检查时都显示为false。

当viewmodel的属性定义为
bool
时,助手
@Html.EditorFor(model=>model.boolProperty)
将自动生成一个复选框

对于你的评论,也许是这样的

public class myViewModel
{
 List<boolNames> firstList { get; set; }
 List<boolNames> anotherList { get; set; }
}

public class boolNames
{
 public string Name { get; set; }
 public int GUID { get; set; }
 public bool checkBox { get; set; }
}
公共类myViewModel
{
List firstList{get;set;}
列出另一个列表{get;set;}
}
公共类boolNames
{
公共字符串名称{get;set;}
公共int GUID{get;set;}
公共布尔复选框{get;set;}
}
看法

@for(int i=0;imodel.firstList[i].checkBox)
}

您可能可以使用
foreach
并停止a[x].b[z].c[y]nonesence。我可以,但通常这会导致所有内容都具有相同的id(当您使用强类型助手时)。正如你所见,我尝试了很多方法。你能看看和/或发布jQuery发送的数据吗?是的,但我不明白我的对象在模型方面会是什么样子。我会有3个bools列表,每个级别一个吗?@chobo2-见编辑,我的回答超出了评论的范围。这个类如何与我已有的类匹配。我需要保持这种结构,就像我需要做逻辑一样。例如,如果他们选择我们,食品,必胜客,我需要保持基本上是FrmVm->GroupedStoresVm(有国家的东西)->StoreGroupingVm(分组信息)->StoreVm(有商店信息)的结构。所以我需要知道所有的信息。使用两个单独的框,我真的不知道如何对齐信息。@chobo2-这只是一个示例-实际的实现和业务逻辑取决于您。
-a
  - 3
     -1
public class myViewModel
{
 List<boolNames> firstList { get; set; }
 List<boolNames> anotherList { get; set; }
}

public class boolNames
{
 public string Name { get; set; }
 public int GUID { get; set; }
 public bool checkBox { get; set; }
}
@for(int i = 0 ; i < Model.firstList.Count ; i++ )
{
 <div id="@(Model.firstList[i].GUID)">
 <span>@Model.firstList[i].Name</span>
 <span>@Html.EditorFor(model => model.firstList[i].checkBox)</span>
 </div>
}