ASP. net MVC javascript в частичном представлении не работает - PullRequest
0 голосов
/ 01 августа 2020

Может быть, кто-то может помочь мне понять, в чем проблема или ошибка с этим вызовом частичного представления, имеющего собственный javascript код.

Это основной cs html :

@model  Ads_Negocio.FormTest

@{
    ViewBag.Title = "Reportone";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<div> <p>Parent view</p> </div>
<p>----------Partial view section-----------</p>
<div>
    <p>Partial view</p>
    @Html.Partial("Componente/_aTestView")
</div>

@section scripts{
    <script type="text/javascript">
        $(document).ready(function () {
            alert("parent view renderign")
        });
    </script>
}

частичное представление _aTestView.cs html:

<button type="button" id="btnGraficNew">Run</button>

<script type="text/javascript">
    $(document).ready(function () {
        alert("partial view rendering");
        $("#btnGraficNew").click("click", function () {
            alert("Call from partial view");
        });
    });
</script>

Проблемы:

  1. После view is rendereng alert внутри частичного вида никогда не вызывается.
  2. Когда я нажимаю кнопку, он не выдает предупреждения.

Ответы [ 2 ]

1 голос
/ 01 августа 2020

Когда вы запускаете свой код, вы можете увидеть следующую ошибку в окне консоли.

Uncaught ReferenceError: $ is not defined 

Решение - Вы должны поместить ссылку jquery в раздел заголовка _Layout .cs html стр. Как только вы это сделаете, ваш код будет работать должным образом. Если вы используете пакет по умолчанию, то код ниже будет работать.

<head>
    ...
    @Scripts.Render("~/bundles/jquery")
</head>

или

<head>
    ...
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
1 голос
/ 01 августа 2020

Частичное представление загружается вместе с родительским представлением. Следовательно, команда javascript должна находиться в родительском представлении, а не на самом частичном представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...