나는이보기 모형이있다.이 모델을 어떻게 바인딩합니까?
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 플러그인을 사용하여 트리처럼 보이게 만듭니다). 그러나 나는 그들이 바인딩하는 확인란을 만드는 방법을 잘 모르겠습니다. 일반적으로 강력하게 형식화 된 HTML 도우미를 사용하지만 bool 값을 원할 때 어떻게 보일지 모르겠습니다.
그래서 강력하게 형식화 된 도우미와 html을 모두 시도했지만 바인딩 할 컨트롤러가있을 때 어떻게 만들지 알아낼 수 없습니다.
public ActionResult (FrmVm vm)
{
}
jquery를 사용하여 직렬화하고 Ajax를 통해 전송합니다. 나는 또한 FrmVm을 언급하는 것을 잊었다
편집 또한 많은 수 있습니다 그것도 같은 다른 뷰 모델이다.
@foreach (var f in Model.FrmVm)
{
@Html.Partial("GenerateTier", f)
}
무엇이 내가 위에 보여준 코드입니다. 이제 내 코드에 추가되었습니다.
편집이 여기
내가
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
구조가 될 것이다 (물론 그들은 것 체크 박스)
-a
- 3
-1
이 아닌 그들이 있는지 말한다 왜 불을 지르고에서 볼 것입니다 내가 모두 확인했을 때 거짓이었다.
아마도 'foreach'를 사용하는 [X] .B [Z] .c 인 [Y] nonesense을 중지 할 수있다. – asawyer
나는 일반적으로 동일한 ID를 가진 모든 것을 만들 수 있습니다 (강력한 입력 헬퍼를 사용할 때). 보시다시피 저는 여러 가지 방법을 시도했습니다. – chobo2
jQuery에서 보낸 데이터를 보거나 게시 할 수 있습니까? – kendaleiv