Max Gay Ответов: 1

Как использовать внешний файл javascript в контроллере MVC


У меня есть внешний файл javascript с именем "dtAddress_v10_r1.js"

Я ссылался на этот файл в моем представлении, которое я использую с этим синтаксисом

"&ЛТ;скрипт в src="~/_scripts/dtAddress_v10_r1.js"&ГТ;&ЛТ;/скрипт>"

Что мне нужно знать, так это то, как я теперь использую этот файл, поскольку он имеет несколько объектов внутри файла, например "dtDecode_Zip", который нуждается в передаче ему hostUrl, а затем возвращает город, штат, округ и т. д. из почтового индекса

Все что угодно поможет

Заранее спасибо

Что я уже пробовал:

Я попытался поместить JS-файл в представление с помощью "@Scripts.То render("~/dtAddress_v10_r1.js")" и "<сценарий СРЦ=~/_scripts/dtAddress_v10_r1.js"&ГТ;&ЛТ;/скрипт>"

ни один из них не делает файл js доступным для контроллера

РЕДАКТИРОВАТЬ:

Я пытаюсь использовать объекты внутри файла javascript, а не собственно файл js, извините за это.

Например, есть объект с именем "dtDecode_Zip", и я хочу иметь возможность использовать этот объект для определения города, штата и т. д. По значению почтового индекса

Я надеюсь, что это немного прояснит ситуацию

Richard Deeming

Твой вопрос не имеет смысла. Javascript работает на клиенте; контроллер работает на сервере. Нет никакого способа "сделайте файл js доступным для контроллера".

Max Gay

Возможно, я написал вопрос слишком быстро. Что я хочу сделать, так это использовать объекты, которые находятся внутри файла javascript в контроллере. Я отредактирую вопрос

Richard Deeming

И в том - то и дело, что ты не можешь. Контроллер-это .NET-код, работающий на сервере. JS-файл - это код Javascript, запущенный на клиенте. Вы не можете использовать объекты, определенные в файле js из кода на стороне сервера в контроллере.

PS: используйте кнопку "ответить" рядом с комментарием, на который вы отвечаете. Таким образом, человек, которому вы отвечаете, получает уведомление о вашем ответе.

Max Gay

Спасибо, Ричард, могу ли я использовать ajax в качестве своего рода посредника? Или я буду использовать его непосредственно в представлении?

Richard Deeming

Вы можете использовать AJAX для вызова кода на стороне сервера из кода на стороне клиента, но вы не можете использовать его для вызова кода на стороне клиента из кода на стороне сервера.

Вы вероятно иметь возможность вручную извлечь часть данных из файла и загрузить его как формат JSON[^] от контроллера; но вам нужно будет реплицировать любую логику из файла Javascript в серверном коде.

Max Gay

Похоже, мне лучше просто переписать код для него, а не использовать JS-файл. Спасибо Вам за вашу помощь

Richard Deeming

Если это просто почтовые индексы США, то, кажется, есть различные бесплатные веб-сервисы, которые вы можете использовать - например:
http://www.webservicex.net/uszip.asmx[^]

Max Gay

Что идеально подходит. Я воспользуюсь этим и сэкономлю себе кучу времени!

Sergey Alexandrovich Kryukov

Строго говоря, даже использование Ajax-это не совсем " вызов серверного кода из клиентского кода "и даже не полный аналог" удаленного вызова"; однако это можно сделать очень просто для этой концепции. (Я имею в виду ваш предыдущий комментарий.)

Знаешь что? вы бы предпочли официально опубликовать свои советы по услугам почтового индекса? Это может закрыть вопрос.

—СА

1 Ответов

Рейтинг:
6

Max Gay

<script src="~/_scripts/dtAddress_v10_r1.js"></script>
<script>
     // Example calling your function
     var result = dtDecode_Zip('{your-url}');
</script>


Это было решение, которое я в конце концов использовал. Это позволило мне использовать все функции в файле JS, выполнять и возвращать значения. Спасибо всем вам за помощь. Я думаю, что если бы я не столкнулся с этим решением, я бы определенно пошел с веб-сервисом, чтобы сделать эту работу