私は、ZipCodesとRegionsのリストを作成するフィルタリングされたAJAXコールに関連する問題があります。AJAXリクエスト・コールのフィルタリング
ZipCodeService.ashx
から取り込んだJSON配列には、「名前」と「コード」というフィールドがあり、「名前」フィールドに「SampleCity」という結果を取得しようとしています。しかし、今ではフィールドとそのデータのすべてが返されているので、フィルタは明らかに私が期待しているように動作していません。どんな助けでも大歓迎です!
私はJQuery/Javascriptの新機能で、AJAXの新機能です。
site.js
$.ajax({
async: true,
contentType: 'application/json; charset=utf-8',
method: "POST",
url: "../ZipCodeService.ashx",
data: { Name: "SampleCity" },
success: function (data) {
var $select = $('#list1');
$.each(data, function (i, item) {
$('<option>',
{
value: item.Code + " - " + item.Name,
}).html(item.Code + " - " + item.Name).appendTo($select),
'</option>';
});
}
});
ZipCodeService.ashx
public class ZipCodeService : IHttpHandler
{
[DataContract]
public class ZipCode
{
[DataMember]
public string Code { get; set; }
[DataMember]
public string Name { get; set; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
var p = new ZipCode[] {
new ZipCode()
{
Code = "00001",
Name = "SampleCity"
},new ZipCode()
{
Code = "00002",
Name = "SampleCity2"
},new ZipCode()
{
Code = "00003",
Name = "SampleCity3"
},new ZipCode()
{
Code = "00004",
Name = "SampleCity4"
}
};
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(ZipCode[]));
ser.WriteObject(stream1, p);
context.Response.Write(Encoding.UTF8.GetString(stream1.ToArray()));
}
}
このコードでは「フィルタ」は表示されません。すべての結果を '#list1'に追加しています。 – Turnip
AJAXとJqueryの初心者は間違いありませんので、私は個人的にdata:{}属性がフィルタになると期待しています。これは事実ではないと思いますか? @Turnip – Xariez
ZipCodeService.ashxのコードを追加できますか? JSONオブジェクトをパラメータとしてページに送ります。もし.ashxのページがそれを期待しているなら、すべてがうまくいくはずです。そうでなければ、別のものを送るべきでしょう。 – Bardo