クライアント側で処理したい JSON オブジェクトがいくつかありますが、指定した WebMethod を起動したくありません。
クライアント側スクリプトで使用した Ajax メソッドと GetJson メソッドは次のとおりです。
$(document).ready(function() {
$(document).ready(function() {
//attach a jQuery live event to the button
$('#getdata').live('click', function() {
$.getJSON('/Members_Only/StockMovement/WebForm1.aspx/StockPlacementOptions', function(data) {
//alert(data); //uncomment this for debug
// alert(data.item1 + " " + data.item2 + " " + data.item3); //further debug
$('#showdata').html("<p>item1=" + data.item1 + " item2=" + data.item2 + " item3=" + data.item3 + "</p>");
});
});
});
アヤックスはこちら
$(document).ready(function () {
$.ajax({
type: "POST",
url: "/Members_Only/StockMovement/WebForm1.aspx/StockPlacementOptions",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{}",
success: function (res) {
$('#Results').append(CreateTableView(res)).fadeIn();
}
});
});
これらのメソッドはどちらも、次のような WebMethod である StockPlacementOptions を呼び出します。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json,
UseHttpGet = true, XmlSerializeString = false)]
public static List<StockReturnMethod> StockPlacementOptions()
{
scmEntitiesPrimaryCon entities = new scmEntitiesPrimaryCon();
var binOptions = (from avail in entities.ProductAvailibleBins(1, 2)
select new StockReturnMethod() { LotID = (int)avail.LotID, LotName = avail.LotName, AreaID = (int)avail.AreaID, AreaName = avail.AreaName, BinID = (int)avail.BinID, BinName = avail.BinName }).ToList();
return binOptions;
}
$(document).ready イベントで JSON Web メソッドを起動することができれば、そこからデータを処理して操作することができます。また、データ処理機能を備えたKnockoutJSのような別の jQuery ライブラリを調べてみましたが、運もありませんでした。フレームワーク 4 で Html5 マークアップを使用して ASP Web フォームを使用しています。
どんなアドバイスでも大歓迎です。