2017-01-30 5 views
0

У меня есть javascript в моем asp-файле, где я хотел бы вызвать функцию vb.Вызов функции VB из javascript

Asp Javascript функция:

<script type="text/javascript"> 
    function functionName(sender, args) { 
     var variable = args.get_value(); 
     PageMethods.VBFunctionName(variable); 
    } 
</script> 

Функция в VB:

<System.Web.Services.WebMethod()> 
Public Shared Function VBFunctionName(variable As String) As String 
    Dim result As String = variable 
    Return result.ToString() 
End Function 

И я также добавил ScriptManager, чтобы включить методы страницы:

<asp:ScriptManager ID="sm" runat="server" EnablePageMethods="True"></asp:ScriptManager> 

Но это не работает! В asp-файле, когда я набираю 'PageMethods' автозаполнение для этого параметра, он недоступен. Итак, я думаю, что ошибка связана с EnablePageMethods.

Как я могу решить эту проблему?

+1

Вы получаете сообщение об ошибке при запуске приложения? –

+0

Ошибок нет, но строка «PageMethods.VBFunctionName (variable);» не вызывает функцию. Когда я начну печатать страницу PageMet ... и попробую CTRL + пространство, чтобы выбрать функцию PageMethods, функция недоступна. – Developer1903

+0

Есть ли какие-нибудь ошибки в консоли вашего браузера? И вы включили тег ScriptManager в страницу _before_ свою функцию javascript? – ADyson

ответ

0

Проблемы с кодом является то, что вы делаете Ajax вызова, но не устанавливая никакого обратного вызова прочитать ответ от сервера. Вам необходимо определить функцию обратного вызова (и, возможно, функцию сбоя), чтобы установить, что вы собираетесь делать с ответом.

Так что ваш script тег должен выглядеть следующим образом: -

<script type="text/javascript"> 
    function functionName(sender, args) { 
     var variable = args.get_value(); 
     PageMethods.VBFunctionName(variable,onSuccess); //pass callback function 
    } 
    function onSuccess(response) { 
     alert(response); //Do whatever you wanna do with response. 
    } 
</script> 

Кроме того, так как мы работаем внутри яваскрипта тег сценария, я не думаю, что Visual Studio сможет предложить ЕВ серверные методы.

Смежные вопросы