#jquery #asp.net-mvc
#jquery #asp.net-mvc
Вопрос:
ViewBag.Image = '<image>https://c152688.ssl.cf3.rackcdn.com/tcthh/v10/bg/light/random/singaporecity_light_1280.jpg'
Я пытаюсь передать URL-адрес изображения с контроллера для просмотра с помощью viewbag. В представлении я пытаюсь присвоить значение div.
<script>
$('#logindiv').css("background-image", "url('" @ViewBag.Image "')");
</script>
Но приведенная выше строка дает мне
Неперехваченная ошибка синтаксиса: отсутствует) после ошибки списка аргументов.
Комментарии:
1. Когда вы просите других людей помочь вам, пожалуйста, уделите время правильному написанию и пунктуации и сделайте хотя бы минимальную разметку, чтобы мы могли определить, что должно быть кодом, а что нет. Когда вы говорите, что получили ошибку, скажите, что из ( ASP.Net компилятор? веб-браузер? что-то еще?) и процитируйте ошибку дословно, используя разметку кавычек. Я исправил вышеизложенное, насколько мог.
2. О строке
ViewBag.Image = '....'
-> из-за одинарных кавычек это не может быть код C # . Но, учитываяViewBag
имя, похоже, что вы пытаетесь установить переменную .NET из Javascript, что невозможно, потому что одна выполняется в браузере (Javascript), а другая выполняется на сервере (C # / .NET).3. Взгляните на ваш отрисованный HTML (просмотр исходного кода в браузере), и должно быть ясно, в чем проблема.
Ответ №1:
Первая проблема заключается в том, что URL-адрес изображения не должен <image>
содержать в нем тег. Это необходимо удалить.
Вторая проблема заключается в том, что вы добавляете содержимое из ViewBag на стороне сервера. Таким образом, вам не нужно объединять его с JS на стороне клиента. Вам просто нужно вывести его в правильном положении в JS.
ViewBag.Image = 'https://c152688.ssl.cf3.rackcdn.com/tcthh/v10/bg/light/random/singaporecity_light_1280.jpg'
jQuery($ => {
$('#logindiv').css("background-image", 'url("@ViewBag.Image")');
});
Обратите внимание, что JS должен запускаться после загрузки DOM, поэтому я добавил обработчик document.ready, а также JS должен выполняться в представлении, чтобы синтаксис @
Razor / Blazor был интерпретирован. Если ваш JS содержится во внешнем .js
файле, ваш текущий подход не будет работать.
Ответ №2:
Пожалуйста, попробуйте это
$('#logindiv').css("background-image", 'url(" @ViewBag.Image ")');
Комментарии:
1. Пожалуйста, пришлите мне ссылку на страницу.