Вы вообще изменяете функцию JavaScript, когда перемещаете ее в отдельный файл JavaScript?
Эта строка не будет работать в файле .js, поскольку у вас нет доступа к ViewBag.
var URL = '@(ViewBag.Title)';
Причина, по которой это работает в файле .cshtml, заключается в том, что вы используете синтаксис бритвы для доступа к объекту ac #.Это вставит значение из объекта в JavaScript, и результат будет тем, что будет оценено.
Поскольку синтаксис бритвы недопустим в файле JavaScript (у вас также есть нулевой контекст ViewBag в файле JavaScript), это не будет работать, и значение вашего URL будет буквально равно "@ (ViewBag.Title)".
Вам нужно будет поместить значение из ViewBag.Title
где-нибудь, чтобы JavaScript мог получить к нему доступ.