MVC же объект передается в @ Html.Partial () ...?

Я застрял в чем-то.

@foreach (BLL.Report.ReportSection section in @Model) {
    @Html.Partial("~/Views/Report/_ReportSection", section)
}

@Model содержит два объекта с идентификаторами 1,2

При загрузке частичного просмотра

["~/Views/Report/_ReportSection" ]

Он вызывает вызов ajax для получения данных из БД.

Я отлаживал этот объект раздела. Это прекрасные и отдельные объекты. но при загрузке он получает второй объект одновременно.

Когда ajax-вызов выполняется контроллером, он всегда передает данные второго объекта (id = 2).

и загружать один и тот же результат для просмотра.

Пожалуйста, сообщите, что мне не хватает.?

ОБНОВЛЕНИЕ

Это полный код в частичном представлении _ReportSection. на готовой функции выполняется ajax-вызов и с данными возврата создается таблица создания

<div id="Section-@Model.ReportId-@Model.SectionId">

</div>
<script type="text/javascript">
    $(document).ready(function () {// alert("text-"+@Model.SectionId);
        getSectionData();
    });

    function getSectionData(){
        alert(@Model.ReportId+" -- "+@Model.SectionId);
        CallAjax("GET",
            "json",
            "/ReportTemplate/GetSectionData",
            { ReportId: @Model.ReportId, SectionId: @Model.SectionId },
            getSectionDataSuccess,
            getSectionDataFail)

    }

    function getSectionDataSuccess(data)
    {
        var table = $('<table></table>');
        var rowHeader = $('<th></th>');
        $.each(data, function(index,column) {
            var cell = $('<td></td>').text(column.ColHeader);
            rowHeader.append(cell);
        });
        table.append(rowHeader);

        $.each(data[0].columnDataList, function(index,colObj)
        {
            var row = $('<tr id="@Model.SectionId-'+colObj.RowId+'"></tr>');
            table.append(row);
        });


        $.each(data, function(index,colObj)
        {
            $.each(colObj.columnDataList, function(index,colData)
            {
                var td = $('<td id="@Model.SectionId-'+colData.RowId+'-'+colData.ColName.trim()+'">'+colData.Data.trim()+'</td>');

                var row = $(table).find('#@Model.SectionId-'+colData.RowId);

                $(table).find('#@Model.SectionId-'+colData.RowId).append(td);
            });

        });
        $('#Section-@Model.ReportId-@Model.SectionId').append(table);
    }

    function getSectionDataFail(xhr, ajaxOptions, thrownError)
    {
        //alert("Ajax Failed!!!");
    }
</script>

.net,asp.net-mvc,

-3

Ответов: 1


0

Спасибо, парни. Я сделал работу. Я удалил код JavaScript из частичного просмотра и разместил его на родительской странице. Это сработало для меня.

Но я пытался разделять разделы, используя javascript внутри частичного представления.

Изменяя, как он работает сейчас. Тем не менее я хочу знать причину, если кто-то может объяснить.

.net, asp.net-MVC,
Похожие вопросы