ASP. NET Core Получить данные и загрузить затем в модели boostrap - PullRequest
0 голосов
/ 09 марта 2020

Я несколько раз пытался загрузить соответствующую папку для определенной кабины inet, когда щелкнул анкерный элемент, как показано в приведенном ниже коде:

Это представление, которое загружает все шкафы, когда пользователь Если щелкнуть ссылку, она должна просмотреть папки cab inet. Проблема возникает при первой успешной загрузке данных, но если я попытаюсь нажать любую другую кнопку, приложение не выполнит соответствующую хранимую процедуру:

<div class="row">
<div class="col-xs-12">
    <div class="table-responsive">
        <table class="table table-hover" id="cabinets_table">
            <tr>
                <th>Ref No.</th>
                <th>Name</th>
                <th>Description</th>
                <th>Upload Date</th>
                <th colspan="3">Actions</th>
            </tr>
            @foreach (Cabinet cabinet in Model)
            {
                <tr>
                    <td>@cabinet.RFCode</td>
                    <td>@cabinet.NameEn</td>
                    <td>@cabinet.Description</td>
                    <td>@cabinet.CreateDate</td>
                    <td>
                        //This is the anchor element
                        ***<a asp-controller="Cabinet"
                           asp-action="GetCabinetContents"
                           asp-route-BranchID="@cabinet.BranchID"
                           asp-route-CabinetID="@cabinet.ID"
                           data-toggle="modal"
                           data-target="#cabinet_contents_modal"
                           class="btn btn-default cabinet_contents_btn"
                           title="Cabinet Contents">
                            <i class="fas fa-sitemap"></i>
                        </a>***
                    </td>
                    <td><a href="#" class="btn btn-default add_folder_btn" title="Add Folder" data-toggle="modal" data-target="#new_folder_modal"><i class="fas fa-folder-plus"></i></a></td>
                    <td><a href="#" class="btn btn-default delete_cabinet_btn" title="Delete Cabinet"><i class="fas fa-trash"></i></a></td>
                </tr>
            }
        </table>
    </div>
</div>

Здесь будет отображаться папка:

<div class="modal fade" id="cabinet_contents_modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title" id="cabinet_contents_modal_header">Cabinet Contents</h4>
        </div>
        <div class="modal-body">
            <div id="loadCabinetFolders"></div>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
    </div>
</div>

Это мой сценарий:

@section LoadCabinetFolders { 
<script>
    $(function () {
        $('body').on('click', '.cabinet_contents_btn', function (e) {
            $('#loadCabinetFolders').empty();
            $('#loadCabinetFolders').load('@Url.Action("_CabinetFoldersPartial")');
        });
    });
</script>

}

И последнее, но не менее важное: вот метод действия

public IActionResult GetCabinetContents(int BranchID, int CabinetID)
    {
        return PartialView("_CabinetFoldersPartial", this.cabinet.GetFolders(1, CabinetID));
    }

Ваша помощь высоко ценится заранее

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Спасибо всем за ваши усилия, все, что мне нужно было сделать, это изменить функцию jquery при нажатии на:

$('#cabinet_contents_modal').on('hidden.bs.modal', function () {
            $(this).removeData('bs.modal');
            $('cabinet_contents_modal .modal-body').empty();
        });
0 голосов
/ 09 марта 2020

function loadCabinetFolders(){ $('#loadCabinetFolders').empty(); $('#loadCabinetFolders').load('@Url.Action("_CabinetFoldersPartial")'); }

измените код вашего скрипта на функцию, подобную приведенной выше, и попробуйте вызвать функцию щелчка, используя тег html в теге, где вы звоните

"$ ( 'body'). on ('click', '.cabinet_contents_btn', function (e) "this code.

...