Вызов внешнего .js из ASP.NET MVC - PullRequest
1 голос
/ 02 марта 2009

Я новичок в JavaScript. Я хотел бы иметь возможность вызывать функцию из файла .js, который находится в папке скриптов проекта ASP.NET MVC.

Функция:

function myfunction() {
    alert("HELLO");
}

... и он находится в файле brfix.js

На странице просмотра я называю это так:

<script src="../../Scripts/brfix.js" type="text/javascript"></script>

<script type="text/javascript">
    $(document).ready(function() {
        myfuntion();
    });
</script>

Но код не работает. Однако, если я размещаю js-код непосредственно на странице просмотра, он работает следующим образом:

<script type="text/javascript">
    $(document).ready(function() {
        alert("HELLO");
    });
</script>

Как вызвать файловую функцию js? Может ли какой-нибудь JavaScript-Big-Kahuna помочь мне? =)

Ответы [ 5 ]

1 голос
/ 03 марта 2009

Если этот код вставлен непосредственно из вашего исходного кода, у вас есть опечатка, поэтому она не работает!

ваша функция называется myfunction (), но вы вызываете myfuntion ()

вы должны включить js ошибки в вашем браузере при разработке. Вы не говорите, какой браузер вы используете. Для IE это в Инструменты - Параметры - Дополнительно. Снимите флажок «отключить отладку сценариев». В Firefox я бы использовал что-то вроде FireBug, как говорит Дрор, если память служит, есть вещи, которые появляются в случае ошибки javascript. Если у вас все еще есть проблемы, я бы попробовал установить Fiddler2 (в IE) и создать запрос для файла js и посмотреть, что получится.

Другой вариант - установить отладчик; вызовите непосредственно перед вызовом своей функции, затем вы сможете пошагово пройти через JavaScript.

0 голосов
/ 18 августа 2010

У меня была такая же проблема, и оказалось, что у меня есть несколько файлов js, которые не были найдены. Если ваша структура проекта MVC является настройкой VS по умолчанию, и ваша страница просмотра находится, например, в Home, то, я думаю, ниже будет найден файл:

<script src="../Scripts/brfix.js" type="text/javascript"></script>

Но даже если этот файл был найден, другие js-файлы не были найдены, поэтому мой $ (document) .ready не работал. Проверьте свою страницу в Firefox в Firefox, если файл не найден, вы увидите html-разметку с сообщением о том, что ресурс не найден, расположенным под ошибочной ссылкой. Как только я разрешил все ссылки на js, мой $ (document). Уже работал.

Странно VS говорил мне, что не может найти js-файлы, когда ссылки были правильными, и не помечал проблему, когда ссылки были неправильными.

0 голосов
/ 03 марта 2009

Как уже упоминалось в других постерах, существует опечатка. Однако ...

Проверьте метод Url.Content () для ссылки на контент вашего сайта. (изображения, сценарии и т. д.) Использование ../ .. не надежно, особенно если у вас есть различные уровни глубины в ваших URL, или ваше приложение живет в подкаталоге.

Вот помощник, который я использую в большинстве своих проектов, например:

public static string Script(this HtmlHelper Html, string url)
{
    UrlHelper Url = new UrlHelper(new RequestContext(Html.ViewContext.HttpContext, Html.ViewContext.RouteData));
    string html = "<script type=\"text/javascript\" src=\"{0}\"></script>";
    return string.Format(html, Url.Content(url));
}

И здесь это называется:

<%= Html.Script("~/public/js/blah.js") %>
0 голосов
/ 02 марта 2009

Если ваш сайт mvc является корневым сайтом в iis, вы можете запустить скрипт src с косой чертой, чтобы добраться до скриптов. в противном случае вы можете использовать asp: ScriptManager для включения скриптов

0 голосов
/ 02 марта 2009

Возможно, неверная ссылка на внешний файл:

<script src="../../Scripts/brfix.js" type="text/javascript"></script>

Убедитесь, что ссылка верна. Вы можете попробовать использовать источник просмотра, чтобы увидеть фактическое местоположение ../../Scripts/brfix.js переводится на последнюю страницу. Вы также можете попробовать с FireBug FireFox.

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