问题描述
||
我想获取对象列表并遍历该列表并构建一个json对象,并在剃刀的foreach循环中调用jquery函数。
@foreach (var item in Model.CoordinatesObj) {
var pinpoint = { \"top\": item.Top,\"left\": item.Left,\"width\": item.Width,\"height\": item.Height
};
$(\"#toPinpoint\").mapImage.addPinpointExt(pinpoint);
}
我希望能够做到这一点,以便它动态构建此精确对象,并用于通过我的addPinpointExt函数。 Model.CoordinatesObj是对象列表。这样甚至可能吗?如果不是,最好的方法是什么?
解决方法
我将for循环放入MVC操作中,然后使用$ .ajax()进行调用
$.ajax({
url: \"/Home/NewAction/id\",type: \"POST\",error : function(req,status,errorObj) { /* handle error */ },success: function(result) {
var pinpoint = result;
$(\"#toPinpoint\").mapImage.addPinpointExt(pinpoint);
}
});
使用Razor生成HTML。
, $(\"p\")ToArray()
为您创建一个数组,以保存每个html元素的值(示例中为\'p \'段落)。或者,您可以使用each()Jquery函数进行迭代。
, 如果要将服务器端代码与纯文本(在您的情况下为Javascript / JSON)混合,则可以将纯文本包装在<text>
标记中:
@foreach (var item in Model.CoordinatesObj) {
<text>
var pinpoint = { \"top\": @item.Top,\"left\": @item.Left,\"width\": @item.Width,\"height\": @item.Height
};
$(\"#toPinpoint\").mapImage.addPinpointExt(pinpoint);
</text>
}
注意,您还缺少服务器端变量前面的“ 5”。
Phil Haack在Razor语法上有一个不错的参考页。