ASP.NET Json 未出现



请参阅此链接

http://aspsolution.net/Code/5/5215/How-to-loop-through-ViewBag-List-in-Jquery/#

我遵循了网站上写的内容。但是Json.Result没有出现。我试图在html中包含这个(@using Newtonsoft.Json(,但它仍然没有出现。为什么?有什么解决办法吗?

这是我的脚本:

fillDatatable();
function fillDatatable() {
var cart = @Html.Raw(Json.Result(@ViewBag.cart));
alert(cart.Items.ItemID);
}

编辑:

if (PurchaseOrder != "") {
var tableHTML = '';
$.each(PurchaseOrder, function (index, value) {
tableHTML += "<tr>";
tableHTML += "<td>" + value.items.itemID + "</td>";
tableHTML += "<td>" + value.items.itemModelDescription + "</td>";
tableHTML += "<td>";
tableHTML += "<input id='UnitPrice" + value.items.ItemID + "' class='form-control b-r-xl text-right' value='" + value.items.itemUnitPrice + "' oninput='return change_unitprice('" + value.items.itemID + "')' />";
tableHTML += "</td>";
tableHTML += "<td>";
tableHTML += "  </tr>";
});
$("#TableRecords").html(tableHTML);
}

在循环中查看我的HTML,在循环中可以看到change_unitprice函数。我试图在那里传递一个id的值,但根据控制台的结果,它是未定义的?为什么?

您引用的示例不包含问题中包含的代码。它描述了如何使用Json.Encode()ViewBag字段中获取数据。您的代码不起作用的可能问题是:

  1. 使用未定义的cart字段
  2. 使用未定义的Items属性
  3. 正在尝试使用尚未加载的HTML文档

因此,按如下方式使用此示例中的函数:

<script>
$(document).ready(function(){
var StockList =@Html.Raw(Json.Encode(@ViewBag.StockList));
if (StockList != '') {
var tableHtml;
$.each(StockList, function( index, value ) {
tableHtml +="<tr><td>" + value.stockId + "</td><td>" + value.StockName + "</td><td>" + value.StockPrice + "</td></tr>";
});
$("#output").html(tableHtml);
}
})
</script>

如果它不起作用(可能是因为Index.cshtml中的Layout = null;行禁用了jquery(,请在<head>标记后添加以下行:

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.6.2.min.js"></script>

有关更多信息,请参阅以下帖子:https://stackoverflow.com/a/10779161/6630084

我认为适用于复杂对象的最简单方法如下:

@Html.Raw(Json.Encode(ViewBag.cart))

最新更新