Код Javascript в теге <script> отображается на странице

Я новичок в js и ссылках на скрипт. У меня есть определенный код js в моем частичном представлении. Фактический код:

<script>

        var bID = @businessIDScript;
        var gID = @groupIDScript;
        var dID = @departmentIDScript;
        var aID = @areaIDScript;


        if (!(aID > 0)) {
            $("#createIdlerButton").attr("disabled", "disabled");
            $("#importIdlerButton").attr("disabled", "disabled");
        }

        if (@sapEnabled == true) {
            $("#sapIdlerReport").show();
            $("#sapIdlerReportAnchor").removeAttr('onClick');
            $("#sapIdlerReportAnchor").attr('onClick', 'PDS.IdlerManagement.sapIdlerReport(' + bID + ',' + gID + ',' + dID + ',' + aID + ')');
        } else {
            $("#sapIdlerReport").hide();
        }
 

</script>

полная страница просмотра бритвы:

@using PDS.Domain.EF6.Resources.Web
@using Kendo.Mvc.UI
@using PDS.Web.Areas.PlannedInspections.Models;
@using PDS.Web.Utils;
@{
    var sapEnabled = ViewBag.SAPEnabled.ToString().ToLower();
    var isLaidOutHide = (string)ViewData["isLaidOutHide"];
    var EnforceUserDropDown = (string)ViewData["EnforceUserDropDown"].ToString().ToLower();
    var CurrentLevelIsDashboard = false;
    bool.TryParse(ViewData["CurrentLevelIsDashboard"].ToString(), out CurrentLevelIsDashboard);

    var WorkOrderDashboardParameters = ViewData["WorkOrderDashboardParameters"] != null ?
    (WorkOrderDashboardParameters)ViewData["WorkOrderDashboardParameters"] : null;

    var importDataName = ViewData["importDataName"]?.ToString() ?? "";
    var importTemplateUrl = ViewData["importTemplateUrl"]?.ToString() ?? "";
    var importActionUrl = ViewData["importActionUrl"]?.ToString() ?? "";
    var areaId = ViewData["areaId"]?.ToString().Trim() ?? "";

    var areaIDScript = string.IsNullOrEmpty(areaId) ? "0" : areaId;
    var breadcrumbTitle = ViewData["breadcrumbTitle"]?.ToString().Trim() ?? "";

    var areaIdStr = ViewData["areaId"]?.ToString().Trim() ?? null;
    var departmentIdStr = ViewData["departmentId"]?.ToString().Trim() ?? null;
    var groupIdStr = ViewData["groupId"]?.ToString().Trim() ?? null;
    var businessIdStr = ViewData["businessId"]?.ToString().Trim() ?? null;

    var businessId = "";
    if (!string.IsNullOrEmpty(businessIdStr))
    {
        businessId = businessIdStr;
    }
    else
    {
        using (var context = PDS.Domain.EF6.EF.CcMSEntitiesv6.CreateForUser(User))
        {
            if (!string.IsNullOrEmpty(groupIdStr))
            {
                var id = int.Parse(groupIdStr);
                businessId = context.vwAreas.FirstOrDefault(x => x.GroupID == id)?.BusinessID.ToString() ?? "";
            }
            else if (!string.IsNullOrEmpty(departmentIdStr))
            {
                var id = int.Parse(departmentIdStr);
                businessId = context.vwAreas.FirstOrDefault(x => x.DepartmentID == id)?.BusinessID.ToString() ?? "";
            }
            else if (!string.IsNullOrEmpty(areaIdStr))
            {
                var id = int.Parse(areaIdStr);
                businessId = context.vwAreas.FirstOrDefault(x => x.AreaID == id)?.BusinessID.ToString() ?? "";
            }
        }
    }
    var businessIDScript = string.IsNullOrEmpty(businessId) ? "0" : businessId;
    var groupIDScript = string.IsNullOrEmpty(groupIdStr) ? "0" : groupIdStr;
    var departmentIDScript = string.IsNullOrEmpty(departmentIdStr) ? "0" : departmentIdStr;
}

<div id = "idler-grid-toolbar" class = "toolbarGridContainer">

    <div class = "pull-left">
        @(Html.Kendo().DropDownList()
                                        .Name("GridFilter")
                                        .HtmlAttributes(new { data_column = "IsAtRisk" })
                                        .Items(items =>
                                        {
                                            items.Add().Text(IdlerManagement.IdlerTag_Dropdown_HideReplaced).Value("active");
                                            items.Add().Text(General.All).Value("all");
                                            items.Add().Text(IdlerManagement.IdlerTag_Dropdown_AtRisk).Value("atrisk");

                                        })
                                        .Events(ev => ev.Change("PDS.IdlerManagement.activeIdlerDashboardFilterChanged"))
        )
        @(Html.Kendo().DropDownList()
                                        .Name("IdlerGridFilter")
                                        .HtmlAttributes(new { data_column = "Idler" })
                                        .Items(items =>
                                        {
                                            items.Add().Text(IdlerManagement.Idlers).Value("true");
                                            items.Add().Text(IdlerManagement.Structures).Value("false");
                                            items.Add().Text(General.All).Value("all");
                                        })
                                        .Events(ev => ev.Change("PDS.IdlerManagement.activeIdlerDashboardFilterChanged2"))
        )
        @if (!CurrentLevelIsDashboard)
        {
            <span class = "pull-right">
                <button type = "button" id = "schematicsButton" class = "btn btn-default" title='@IdlerManagement.Schematics_Button' onclick = "PDS.IdlerManagement.editSchematic(this, '@areaId')">
                    @IdlerManagement.Schematics_Button
                </button>
            </span>
        }
        @if (User.IsInRole("Power User") || User.IsInRole("Business Administrator") || User.IsInRole("System Administrator"))
        {
            <div class = "pull-right">
                <div class = "dropdown shutdown-planner-dropdown">
                    <button type = "button" id = "shutdownPlannerTags" class = "btn btn-default dropdown-toggle" title='@IdlerManagement.ShutdownPlanner_Button' data-toggle = "dropdown">
                        @IdlerManagement.ShutdownPlanner_Button
                        <span role = "button" unselectable = "on" class = "k-select" aria-label = "select">
                            <span class = "k-icon k-i-arrow-60-down"></span>
                        </span>
                    </button>
                    <ul class = "dropdown-menu dropdown-menu-right" style = "transform:translate3d(0px, 51px, 0px); overflow-y:auto">
                        <li>
                            <a href = "#" class = "addShutdown" onclick = "PDS.IdlerManagement.shutdownPlannerAdd(this, '@businessId', '@breadcrumbTitle', '@User.Identity.Name')" id = "shutdownPlannerTags">@IdlerManagement.ShutdownPlanner_Button_Add</a>
                        </li>
                        <li>
                            <a href = "#" class = "removeShutdown" onclick = "PDS.IdlerManagement.shutdownPlannerRemove(this, '@User.Identity.Name')" id = "shutdownPlannerTags">@IdlerManagement.ShutdownPlanner_Button_Remove</a>
                        </li>
                    </ul>
                </div>
            </div>
            @Html.Partial("_IdlerShutdownPlannerTemplate")
        }

        @if (!User.IsInRole("Read Only User"))
        {
            <button class = "btn btn-default " onclick = "PDS.IdlerManagement.closeOutIdlerTags(this, @EnforceUserDropDown, '@User.Identity.Name')" disabled = "disabled" id = "closeOutIdlerTags">@IdlerManagement.IdlerTag_Button_CloseOut</button>
            <button class = "btn btn-default  @isLaidOutHide" onclick = "PDS.IdlerManagement.laidOutIdlerTags(this, @EnforceUserDropDown, '@User.Identity.Name')" disabled = "disabled" id = "laidOutIdlerTags">@IdlerManagement.IdlerTag_Button_LaidOut</button>
        }
    </div>
    @if (WorkOrderDashboardParameters != null)
    {
        <span class = "pull-right">

            <button type = "button" data-role = "close" id = "viewAsset" class = "btn btn-default" title = "@General.Close" onclick = "PDS.Common.UrlHistory.navigateBack()">
                <i class = "fa fa-times"></i>
            </button>

        </span>
    }
    <span class = "pull-right">
        @Html.Partial("_QuickReport", new ViewDataDictionary() { { "groupName", "Idler Management" } })
    </span>

    @Html.Partial("_ImportExportButtons", new ViewDataDictionary() { { "DownloadTemplateUrl", $"/GlobalImportExport/ImportWizard/DownloadImportTemplateByEntity?entityName=IdlerTag" }, { "EntityName", "IdlerTag" } })

    @if (!User.IsInRole("Read Only User"))
    {
        if (!CurrentLevelIsDashboard)
        {
            <div class = "pull-right">
                <div class = "dropdown create-idlerstructure-button-dropdown">
                    <button type = "button" id = "createIdlerButton" class = "btn btn-default dropdown-toggle" title = "@IdlerManagement.IdlerTag_Tooltip_CreateRecord" data-toggle = "dropdown"><i class = "fa fa-plus"></i></button>
                    <ul class = "dropdown-menu dropdown-menu-right">
                        <li>
                            <a href = "#" class = "addIdler-Idler" onclick = "PDS.IdlerManagement.createIdlerTag(this, true, '@areaId', @Html.Raw(WorkOrderDashboardParameters != null && WorkOrderDashboardParameters.workOrderTaskId.HasValue ? WorkOrderDashboardParameters.workOrderTaskId.ToString() : "null"))" id = "laidOutIdlerTags">@IdlerManagement.IdlerTag_Button_CreateIdler</a>
                        </li>
                        <li>
                            <a href = "#" class = "addIdler-structure" onclick = "PDS.IdlerManagement.createIdlerTag(this, false, '@areaId', @Html.Raw(WorkOrderDashboardParameters != null && WorkOrderDashboardParameters.workOrderTaskId.HasValue ? WorkOrderDashboardParameters.workOrderTaskId.ToString() : "null"))" id = "laidOutIdlerTags">@IdlerManagement.IdlerTag_Button_CreateStructure</a>
                        </li>
                    </ul>
                </div>
            </div>
        }
    }


</div>

@Html.Partial("_ImportTemplate", new ViewDataDictionary() { { "importTemplateUrl", importTemplateUrl }, { "importActionUrl", importActionUrl } })

<script>

        var bID = @businessIDScript;
        var gID = @groupIDScript;
        var dID = @departmentIDScript;
        var aID = @areaIDScript;


        if (!(aID > 0)) {
            $("#createIdlerButton").attr("disabled", "disabled");
            $("#importIdlerButton").attr("disabled", "disabled");
        }

        if (@sapEnabled == true) {
            $("#sapIdlerReport").show();
            $("#sapIdlerReportAnchor").removeAttr('onClick');
            $("#sapIdlerReportAnchor").attr('onClick', 'PDS.IdlerManagement.sapIdlerReport(' + bID + ',' + gID + ',' + dID + ',' + aID + ')');
        } else {
            $("#sapIdlerReport").hide();
        }
 

</script>

Отображение выглядит следующим образом: Как вы можете видеть на изображении ниже, часть кода js отображается на главной странице. Мне трудно решить эту проблему.
Код Javascript в теге &lt;script&gt; отображается на странице

Примечание. С функциональностью кода проблем нет, он отлично работает. Даже пробовал делать console.info("Hello World"). Выбрасывает на страницу тот же темный наполовину испеченный js. Будем признательны за любую помощь.
Заранее спасибо.

Что я пробовал:
Первоначально я думал, что эта проблема связана с некоторыми отсутствующими тегами и замыканием в тегах html, но я исправил эти проблемы и устранил ошибки консоли и предупреждения, которые я получал для этих тегов. Кроме того, я обнаружил, что «не отображать ничего» в теге скрипта решило эту проблему, но мой старший не разрешит, говоря, что это не решение, а просто хак. Я понятия не имею, что вызывает эту проблему, потому что в VS нет ни предупреждений, ни ошибок. также я попытался выполнить функцию document.Ready для этого скрипта, но это также с треском провалилось. Теперь я не в курсе и понятия не имею, что вызывает эту ошибку. Другое решение, которое я обнаружил, заключалось в том, что если я переместил весь этот скрипт в новый тег <div>, это решило проблему.

Ожидание:
--> JS не должен отображаться на странице.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
95
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Похоже, что страница отображает тег скрипта как html.

Быстрое и простое решение — скрыть тег script следующим образом:

<script style = "display:none;">

Если бы вы могли переместить эту функциональность за пределы страницы бритвы и на специальную страницу javascript/typescript, это, вероятно, также решило бы проблему рендеринга.

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

Utsav 25.01.2023 01:28
Ответ принят как подходящий

Ниже поможет

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

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

@RenderSection("scripts", required: false)

// используйте ниже на вашем частичном

 @section scripts{
 <script type = "text/javascript">

    var bID = @businessIDScript;
    var gID = @groupIDScript;
    var dID = @departmentIDScript;
    var aID = @areaIDScript;


    if (!(aID > 0)) {
        $("#createIdlerButton").attr("disabled", "disabled");
        $("#importIdlerButton").attr("disabled", "disabled");
    }

    if (@sapEnabled == true) {
        $("#sapIdlerReport").show();
        $("#sapIdlerReportAnchor").removeAttr('onClick');
        $("#sapIdlerReportAnchor").attr('onClick', 'PDS.IdlerManagement.sapIdlerReport(' + bID + ',' + gID + ',' + dID + ',' + aID + ')');
    } else {
        $("#sapIdlerReport").hide();
    }
}

Спасибо большое. это сработало для меня. ты легенда

Utsav 25.01.2023 01:41

Пробовали ли вы переместить скрипт в другое место и посмотреть, что произойдет? Шаблон кендо может отображать этот фрагмент JavaScript в столбцах/заголовке сетки данных в виде текста. Я думаю, что вы можете сделать, это сначала сделать методом проб и ошибок определить, где код будет работать и в то же время не будет отображаться как текст. Может быть, что-то общее, например, страница макета или что-то в этом роде? После этого вы можете сделать правильное исправление, например, где лучше всего разместить код.

да, может быть, я попробую, но мне пришлось отказаться от отображения из-за выпуска. Был поставлен хак. хахаха

Utsav 25.01.2023 01:29

рассматривать как комментарий вместо ответа

learning 25.01.2023 04:24

Другие вопросы по теме