public class 州 { private string id /// /// Number /// public;文字列 ID { get { return id; } set { id = value; } プライベート文字列名; /// / // name /// パブリック文字列 Name { get { return name; } set { name = value; }
{ private string id; /// ///number /// < ;/summary> パブリック文字列 ID { get { return id; } } プライベート文字列名; / // Name /// public string Name { get { return name; } set { name = value; } } }
/// /// パブリック文字列 ID { get { return id; } set { id = value; } プライベート文字列名; /// /// Name /// public string Name { get { return name; >set { name = value; } } }
ステップ 3: サーバー側ハンドラー クラスを作成します: Handler.cs
コードをコピーします
コードは次のとおりです:
/// 2 /// ハンドラー 3 /// 4 public class Handler : IHttpHandler 5 { 6 7 private static static JavaScriptSerializer jss = new JavaScriptSerializer(); public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; = "failure";// デフォルトの戻り結果は失敗です HttpRequest req = context.Request; string田舎 = req["province"];//ユーザーが選択した州の番号を取得します string city = req["city"]; //ユーザーが選択した都市の番号を取得します string county = req["county"];//ユーザーが選択した郡の番号を取得します string type = req["type"];//ユーザーが取得する必要があるものを取得します 州、市、郡のリストのタイプ InitDoc() if (type.HasValue()) { switch (type.ToLower()) { case "province "://ユーザーが州リストを取得する必要がある場合 result = jss.Serialize(GetProvinceList()); break; case "city"://ユーザーが市区町村リストを取得する必要がある場合 result = jss.Serialize(GetCityListByProvince(province)); case "county; "://ユーザーが郡レベルのリストを取得する必要がある場合 result = jss.Serialize(GetCountyListByCity(province , city)); break; デフォルト: break; } } // 結果をテキスト形式でクライアントに返します。 } /// // / ドキュメント オブジェクトを初期化します /// private void InitDoc() { if (doc == null) { doc = XDocument.Load (filePath); } } /// // / 地方リストを初期化します /// private List GetProvinceList() { List = new List(); if (doc != null) { XElement root = doc.Root; >foreach (var prov in root.XPathSelectElements("province")) { list.Add( new states() { Id = prov.Attribute("id").Value, Name = prov.Attribute("name").Value }); } } 戻りリスト; } /// /// 州番号に基づいて市区町村番号を取得します /// /// 州番号 private ListGetCityListByProvince(string provId) { List list = new List(); if (doc != null) = doc.Root; //xpath 式: /area/province[@id='1' ]/city string queryPath = "/area/province[@id='" provId "']/city "; foreach (var city in root.XPathSelectElements(queryPath)) { list.Add(new City() { Id = city.Attribute("id").値、 Name = city.Attribute("name").Value }); } } 戻りリスト } /// /// 州番号と市番号に基づいて郡番号を取得します // / /// 州番号 param> /// 市番号 private List GetCountyListByCity(string provId, string cityId) { List ; list = new List(); if (doc != null ) XElement root = doc.Root string queryPath = "/area/province= '" provId "']/city[@id='" cityId "']/county "; foreach (var county in root.Value, Name = county.Attribute("name").Value }); } } return list; } public bool IsReusable { get { return } } }