使用带有class / id的每个div的ajax

时间:2018-01-19 06:43:47

标签: javascript jquery html ajax asp.net-core

所以我有一个asp.net core 2项目,我有一个主视图这个html:

<div>
@foreach (var factory in Model.factoryList)
{
    <div class="factory-panel-content">
        <div class="factory-main-info">
            @factory.Name
            <div class="city-name">@factory.CityName</div>
            <div class="factory-some-value">
                @factory.someValue
            </div>

        </div>
        <div id="factory-plot-content">

        </div>
    </div>
}

一个部分视图,(仅限html)

<div class="row">
<div class="col-md-4">
    <div id="flot-line-chart" style="height: 100px"></div>
</div>
<div class="col-md-2">
    <div id="flot-pie-chart" style="height: 100px"></div>
</div>
<div class="col-md-2">
    <div id="gauge"></div>
</div>

我需要的是在每个工厂的主视图中为每个#factory-plot-content获取部分视图。 使用下面的ajax只改变#factory-plot-content中的一个 - 第一个(我理解为什么)但我不知道调用ajax.get foreach of factory divs的最佳方法是什么。

我的ajax:(我在母版页中调用。在预告工厂时调用它会很棒)

        $(document).ready(function () {

        $.ajax({
            url: '/home/ShowShortFactoryInfo',
            success: function (data) {
                $("#factory-plot-content").html(data);
            }
        });
    })

我的第一个想法是制作自定义ID,例如&#34; factory-plot-content-@Model.FactoryName"但我确信这是达到我需要的结果的一种丑陋方式。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用以下代码:

<div>
<script>
    var factoryNumber = 0;
</script>
@foreach (var factory in Model.factoryList)
{    
    <div class="factory-panel-content">
        <div class="factory-main-info">
            @factory.Name
            <div class="city-name">@factory.CityName</div>
            <div class="factory-some-value">
                @factory.someValue
            </div>
        </div>
        <div class="partial-data" id="factory-plot-content">
            <script>
                getPartialData(function(data){
                    let partialData = $(".partialData")[factoryNumber];
                    partialData.html(data);
                    factoryNumber++;
                });
            </script>
        </div>
    </div>
}
<script>
function getPartialData(cb){
    $.ajax({
        url: '/home/ShowShortFactoryInfo',
        success: function (data) {
            cb(data);
        }
    });
}
</script>

希望有所帮助:)