Два практически идентичных JavaScript;один работает, другой нет - PullRequest
0 голосов
/ 30 июня 2019

У меня есть два набора функциональных возможностей на основе JavaScript / Razor, которые почти идентичны, но один работает, как ожидалось, а другой нет.

Фактически, второй (не функционирующий) набор действий контроллера, частичного представления и сценария был скопирован напрямую из первого (работающего) набора.Единственное изменение, которое я сделал, - это удаление ненужного передаваемого идентификатора (OP должен указать где), запуск кода, и он не работал.

Может кто-нибудь указать мне, что я делаю неправильно?

Вариант использования + ожидаемое поведение:

Оба набора предназначены для вызова метода контроллера, который выполняет следующие действия:

  1. Получение представления частичного результата
  2. Отобразить это представление частичного результата в указанном (и пустом) div.

Текущее поведение:

Первый (функциональный) набор правильно получает представление и отображает его в указанном div.Второй (нефункциональный) набор получает представление, но затем загружает новую, пустую страницу, содержащую только это представление.


Следующие данные взяты из нефункционального набора

JS Script:

    <script type="text/javascript">
            $(document).ready(function () {
                $('.rollInit').on('click', function (e) {
                    e.preventDefault();
                    $.get('@Url.Action("RollInits")', function (result) {
                        $('#initiativerolls').prepend(result);
                    });
                });
            });
    </script>

Действие контроллера:

        public ActionResult RollInits()
        {
            RNGCSP rng = new RNGCSP();
            var inits = new List<VMInitiatives>();
            foreach (var init in db.Initiatives)
            {
                var newInit = new VMInitiatives()
                {
                    Result = init.CharacterName + ": " + (rng.RollDice(20) + init.InitiativeBonus).ToString()
                };
                inits.Add(newInit);
            }
            return PartialView("_InitResult", inits);
        }

Частичное представление результатов:

@model IEnumerable<WagersDesigns.ViewModels.VMInitiatives>

<table>
    <tbody>
        @foreach (var roll in Model)
        {
            <tr>
                <td>
                    @roll.Result
                </td>
            </tr>
        }
    </tbody>
</table>

Сегмент страницы бритвы:

...
<tbody>
        <tr>
            <td valign="top">
                <diV id="resultList">

                </diV>
            </td>
            <td valign="top" align="center">
                <button id="clear" onclick="clearcontent('resultList')">Clear Rolls</button>
            </td>
            <td valign="top">
                <div id="initiatives">
                    @* display list of all character initiatives *@
                </div>
            </td>
            <td valign="top">@Html.ActionLink("Roll Init", "RollInits", new { @class = "rollInit" }) |</td>
            <td valign="top">
                <div id="initiativerolls">

                </div>
            </td>
            <td valign="top" align="center">
                <button id="clear" onclick="clearcontent('initiativerolls')">Clear Initiatives</button>
            </td>
        </tr>
    </tbody>
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...