Javascript с некоторыми Razor не работает внешне - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть функция JavaScript

 function GotoFPLoginPage() {
            var url = '@(ViewBag.Title)';
            if (url.includes("Home")) {
                window.location.href = "/FPLogin/Index";
            }
        }

Реализация:

<html onclick="GotoFPLoginPage()">

Цель этого - когда пользователь щелкает любую часть страницы, он будет перенаправлен на другую целевую страницу.

Этот пример работает нормально, если я использую саму функцию внутри моего _layout page, но когда я попытался сделать его файлом javascript и сделать уникальное имя Custom_JSFile, то после вызова GotoFPLoginPage() он не работает.

 @Scripts.Render("~/Scripts/Custom_JSFile.js")

Любая идея высоко ценится.

1 Ответ

1 голос
/ 15 апреля 2019

Вы вообще изменяете функцию JavaScript, когда перемещаете ее в отдельный файл JavaScript?

Эта строка не будет работать в файле .js, поскольку у вас нет доступа к ViewBag.

var URL = '@(ViewBag.Title)';

Причина, по которой это работает в файле .cshtml, заключается в том, что вы используете синтаксис бритвы для доступа к объекту ac #.Это вставит значение из объекта в JavaScript, и результат будет тем, что будет оценено.

Поскольку синтаксис бритвы недопустим в файле JavaScript (у вас также есть нулевой контекст ViewBag в файле JavaScript), это не будет работать, и значение вашего URL будет буквально равно "@ (ViewBag.Title)".

Вам нужно будет поместить значение из ViewBag.Title где-нибудь, чтобы JavaScript мог получить к нему доступ.

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