如何使用 foreach 循环构建 json 对象并在 razor 中调用 jquery 函数

发布于 2024-11-10 17:08:54 字数 486 浏览 0 评论 0原文

我想获取一个对象列表并迭代该列表并构建一个 json 对象并在 razor 的 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);
}

我希望能够执行此操作,以便它动态构建此 pinpoint 对象并用于传递我的 addPinpointExt 函数。 Model.CoordinatesObj 是对象列表。这甚至可能吗?如果不是,最好的方法是什么?

I want to take a list of objects and iterate through the list and build a json object and call a jquery function in a foreach loop of razor.

@foreach (var item in Model.CoordinatesObj) {
        var pinpoint = { "top": item.Top,
                "left": item.Left,
                "width": item.Width,
                "height": item.Height
            };
       $("#toPinpoint").mapImage.addPinpointExt(pinpoint);
}

I want to be able to do this so it dynamically builds this pinpoint object and is used to pass through my addPinpointExt function. the Model.CoordinatesObj is a List of objects. Is this even possible this way? If not what is the best way to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

掩于岁月 2024-11-17 17:08:54

我会将 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。

I would put the for loop in an MVC action and then call it using $.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);
   }
});

use Razor for generating HTML.

无悔心 2024-11-17 17:08:54
$("p")ToArray()

为您创建一个数组,保存每个 html 元素的值(示例中的“p”段落)
或者您可以使用each() Jquery 函数进行迭代。

$("p")ToArray()

Creates an array for you holding value of every html element ('p' paragraph in example)
Alternatively you can use each() Jquery function to iterate.

长不大的小祸害 2024-11-17 17:08:54

如果您想将服务器端代码与纯文本(在您的情况下为 Javascript/JSON)混合,您可以将纯文本包装在 标记中:

@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>
}

请注意,您还缺少 @ 在服务器端变量前面。

Phil Haack 在 Razor 语法。

If you want to mix server-side code with plain text (Javascript/JSON in your case), you can wrap the plain text in a <text> tag:

@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>
}

Notice you were also missing the @ in front of the server-side variables.

Phil Haack has a nice reference page on Razor syntax.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文