このトピックに関する他の投稿は役に立ちましたが、完全ではありません。次のように、Wcf サービス (MVC 4 プロジェクトに含まれています) からデータを取得しています。
WarehouseController.cs
WarehouseInput objWI = new WarehouseInput();
public ActionResult Index(WarehouseInput value)
{
objWI.count = 15;
objWI.offset = 0;
objWI.query = "";
objWI.sort = "ID";
objWI.order = "asc";
objWI.ID = 0;
objWI.RowID = 0;
Service1 c = new Service1();
c.GetWarehouseList(objWI);
//var model = c.GetServices();
update 1 -----> return View(objWI);
//return GetWarehouseList(objWI);
update 2 -----> //return Json(objWI, JsonRequestBehavior.AllowGet);
}
Jsonオブジェクトでデータを取得しています...
Index.cshtml 編集:
@model MvcApplication1.WS.DataContracts.WarehouseInput
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<script type="text/javascript">
alert('0');
$.ajax({
url: '@Url.Action("Index")',
type: 'GET',
cache: false,
success: function(resp) {
alert(resp);
if (resp.WarehouseResults != null) {
var objTemp = resp.WarehouseResults;
//var from = resp.offset, to = from + resp.WarehouseResults.length;
//data.length = parseInt(resp.total);
//for (var i = 0; i < resp.WarehouseResults.length; i++) {
// data[from + i] = resp.WarehouseResults[i];
// data[from + i].index = from + i;
//}
//$("#lblRows").html("<b>Total: " + resp.total + "</b>");
//onDataLoaded.notify({ from: from, to: to });
}
else {
//i = indicators.pop();
//if (i != null)
// i.fadeOut();
alert('Error loading the page');
}
alert('1');
}
});
alert('1.5');
var values = @Html.Raw(Json.Encode(Model.WarehouseResults));
var data = [];
var grid;
var validator;
問題は、コントロールが cshtml に移動しないことです。json オブジェクトをビュー (UI) に渡すにはどうすればよいですか? 使用している slickgrid に表示するにはどうすればよいですか? 編集: JavaScript コードを修正する必要がありますが、まずそこに到達するためのコントロールを取得する必要があります。