2012-04-04 185 views
0

以下是我的代码与业务逻辑。我得到下面的JSON调用web服务,并与我反序列化,要(在我的实体所示)的对象。现在,我想与该类别选项显示下拉一旦用户选择它应该显示复选框子类别列表中的类别。基于下拉选择如何显示复选框列表?

按我下面的代码的下拉应该有“吃” &“娱乐”的选项。如果用户选择“娱乐”,那么它应该显示“全部”,“电影,&‘保龄球’的复选框列表任何人都可以请帮助我如何有这MVC3 & C#

JSON:?

{ 
    "Code":0, 
    "Status":"Done", 
    "Categories":[ 
       { 
       "ID":1, 
       "Name":"Eat", 
       "Subcategories":[ 
        {"Flag":false,"ID":100,"Name":"Food"}, 
        {"Flag":false,"ID":101,"Name":"Fast Food"},   
        {"Flag":false,"ID":102,"Name":"Other"} 
        ] 
        }, 
       { 
       "ID":2, 
       "Name":"Entertainment", 
       "Subcategories":[ 
         {"Flag":false,"ID":100,"Name":"All"},    
         {"Flag":false,"ID":101,"Name":"Movie"}, 
         {"Flag":false,"ID":102,"Name":"Bowling"} 
         ] 
        }, 
        } 
      ] 
    } 

实体:

public class MyData 
{ 
    public int Code { get; set; } 
    public string Status { get; set; } 
    public List<Category> Categories { get; set; } 
    } 

    public class Category 
    { 
     public string Name { get; set; } 
     public int ID { get; set; } 
     public List<Subcategory> Subcategories { get; set; } 
    } 

    public class Subcategory 
    { 
    public string Name { get; set; } 
    public int ID { get; set; } 
    public bool Flag { get; set; } 
    } 

ServiceCall:

public MyData GetAllCategories() 
    { 
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://host/data/categories/"); 

      request.ContentType = "application/json; charset=utf-8"; 
      request.Method = "GET"; 

      string returnJson = string.Empty; 

      using (WebResponse response = request.GetResponse()) 
      { 
       using (Stream stream = response.GetResponseStream()) 
       { 
        using (StreamReader reader = new StreamReader(stream)) 
        { 
         while (!reader.EndOfStream) 
         { 
          returnJson += reader.ReadLine(); 
         } 
        } 
       } 
      } 

      MyData deserializedMyData = JsonConvert.DeserializeObject<MyData>returnJson 


      return deserializedMyData; 
     } 

回答

2

使用以下代码 @model MyData

@foreach (Category item in Model.Categories) 
     { 
<input type="checkbox" name="Categories" value="@item.categoryId" id="@item.categoryId"/> 

     } 
相关问题