Почему-то не появляется модальное окно

297
12 июля 2017, 22:24

Эксперементировал вот по этому гайду с небольшими изменениями, но почему-то в итоге открывается новая страница, а не модальное окно.

В итоге у меня получилась вот такая разметка главной вьюхи:

<div id="modDialog" class="modal fade">
        <div id="dialogContent" class="modal-dialog"></div>
    </div>
    <div>
        <table id="storageList" class="table table-hover">
            <thead>
                <tr>
                    <th>Storage_id</th>
                    <th>Name</th>
                    <th>TotalFreeSpace</th>
                </tr>
            </thead>
            <tbody>
                @{
                    foreach (var storage in Model)
                    {
                        <tr id="clickable"
                            onclick="location.href = '@(Url.Action("Details", null, new {storageId = storage.StorageId}))'">
                            <td id="storageId">@storage.StorageId</td>
                            <td id="name">@storage.Name</td>
                            <td id="totalFreeSpace">@storage.TotalFreeSpace</td>
                        </tr>
                    }
                }
            </tbody>
        </table>
<script>
        $(document).ready(function () {
            $.ajaxSetup({ cache: false });
            $('#clickable').click(function (e) {
                e.preventDefault();
                $.get(this.href, function (data) {
                    $('#dialogContent').html(data);
                    $('#modDialog').modal('show');
                });
            });
        })
</script>

Такая разметка у частичного представления:

@model String
<div class="modal-content">
    <div class="modal-header">
        <button class="close" data-dismiss="modal" area-hidden="true">X</button>
        <h4>@Model</h4>
        <div class="modal-body">
            <dl class="dl-horizontal">
            </dl>
        </div>
    </div>
</div>

Вот этот метод рисует частичное представление:

 public ActionResult Details(string storageId)
    {
        return PartialView(null,storageId);
    }

В логе браузера пишется:

"[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/."

Подскажите, где я допустил ошибку?

UPD

Переписал скрипт в такой вид

<script>
        $(document).ready(function () {
            $.ajaxSetup({ cache: false });
            $('#clickable').click(function (e) {
                e.preventDefault();
                var target = $(e.target);
                var link = "@(Url.Action("Details", null, new {storageId = "tmp"}))";
                link = link.replace("tmp", target.text());
                $.get(link, function (data) {
                    $("#dialogContent").html(data);
                    $("#modDialog").modal('show');
                });
            });
        })
    </script>

Теперь окно есть, но оно открывается только на первой строчке... Где еще может быть ошибка?

READ ALSO
Проблема с MySQL C#

Проблема с MySQL C#

Почему появляется исключение при изменении пароля, но пароль в базе данных меняется

234
Определение dns адресов у proxy c#

Определение dns адресов у proxy c#

Можно ли получить список dns proxy не используя при этом браузер ? Желательно средствами c#?

285
Как отлаживать JS в VS2017?

Как отлаживать JS в VS2017?

Если ставить точки останова в скрипте, то при запуске проекта они становятся белыми и пишется, что они недостижимы, однако, на выражения Razor все...

172
Как узнать доступен ли файл для открытия и записи?

Как узнать доступен ли файл для открытия и записи?

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

221