Почему перемещение кода из HTML в .js вызывает проблемы?

0

У меня есть проект asp.net mvc с knockout.js, поэтому моя индексная страница становится действительно огромной из-за множества функций javascript. Мне бы хотелось переместить js-код в отдельный файл, но он не позволяет мне применить его к большей части кода, потому что, если у меня есть что-то вроде

$.ajax({
    url: "@Html.Raw(@Url.Action("Load"))",

Затем появляется сообщение об ошибке, если я переместю эту часть кода в другой файл. Пожалуйста, сообщите, как я могу решить эту проблему?

Теги:
asp.net-mvc
knockout.js
html-helper

3 ответа

3

Файлы Javascript не обрабатываются ASP.net, поэтому переменные, которые у вас есть @Html.Raw и @Url.Action("Загрузка"), никогда не будут обработаны.

0

Файлы Javascript не обрабатываются ASP.NET MVC, поэтому @Html.Raw(@Url.Action("Load")) не будет работать в файле javascript.

Херес обходной путь

Вместо этого объявите переменную в view.cshtml. В разделе сценария как

<script type="text/javascript">
     var actionUrl = '@Url.Action("Load", "Controller")';
</script>

И используйте actionUrl в файле javascript.

0

Как отметил @James Lai, серверный код сервера не анализируется как таковой ASP.Net. См. Этот пост для обхода, или вы можете выбрать, какие сценарии могут оставаться на странице (с кодом на стороне сервера), а не "все" - ваш выбор относительно того, какой подход соответствует вашим требованиям.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню