Почему мой параметр javascript дает мне сообщение «Возможно, он недоступен из-за уровня защиты».ошибка? - PullRequest
0 голосов
/ 24 мая 2011

Мой код

<script type="text/javascript" language="javascript">
        function jsFullPath(relPath) {
            var hidefield = document.getElementById('HiddenField1');
            hidefield.value = relPath;
            var fullPathStr = '<%= fullPath(hidefield.value) %>';
        }
</script>

Public Function fullpath(ByVal relPath As String) As String

    Dim fullPathStr As String = Server.MapPath(relPath)
    Return fullPathStr
End Function

Каждый раз, когда я компилирую, я получаю эту ошибку. Я не понимаю почему. Это должно работать.

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Похоже, что вы пытаетесь передать переменную JavaScript в ваш метод VB.К сожалению, это не сработает, поскольку страница уже была проанализирована и выведена в браузер (уже покинул сервер) к моменту выполнения JavaScript.

Один из вариантов - получить это значение с помощью использования.ajax.

Если у вас уже есть значение скрытого поля, можете ли вы сделать что-то подобное?

<script type="text/javascript" language="javascript">
        function jsFullPath() {
            return '<%= Server.MapPath('HiddenField1.Value') %>';
        }
</script>
1 голос
/ 24 мая 2011

Вы ссылаетесь на hidefield (объект JavaScript) внутри тега сервера.Исключением является, по сути, сообщение о том, что поле скрытия не определено на сервере.

Чтобы это работало, метод fullpath должен вызываться через Ajax.

...