Вызов метода на стороне сервера в функции на стороне клиента (Javascript) - PullRequest
0 голосов
/ 23 мая 2011

Может ли кто-нибудь помочь мне в вызове моего метода VB.NET в моей функции JavaScript? Мой метод не является общим / статическим и не возвращает ничего. Он просто сохраняет данные в базу данных и перенаправляет пользователя. Пожалуйста, помогите мне, вот мой код:

VB метод

  Public Function SaveVehicles()
          Dim res As Boolean
             If res = True Then
            Dim sModel As String = cboModel.SelectedValue
            Dim sVariant As String = cboVariant.SelectedValue
            Dim sColor As String = cboColor.SelectedValue

            cboModel.SelectedValue = sModel
            cboVariant.SelectedValue = sVariant
            cboColor.SelectedValue = sColor


            Dim oData As New WebServVehSwapping
            Dim strSql As String
            Dim sDealer As String
            Dim sUserName As String

            'sDealer = "TBP01"
            sDealer = Trim(Request.QueryString("dealercode"))
            If sDealer = "" Then sDealer = "TBP01"
            sUserName = "User1"

            '------------------------------------------
            strSql = oData.InsertTblRequirement( _
              sDealer _
             , Now.ToString _
             , sUserName _
             , cboColor.Text.Trim _
             , cboModel.Text.Trim _
             , cboVariant.Text.Trim, "Open")
            MsgBox("OKAY")
            Response.Redirect("MyRequirements.aspx?DealerCode=" & sDealer)
        Else
            'do Nothing
        End If
    End Function

и вот моя функция Javascript

   function ConfirmView()
    {   
        var Ok = confirm('There is/are existing vehicle(s) in Network Vehiches for sale, View Vehicle(s)?');
        if(Ok==true)
        {

       location.href = 'NetworkVehiclesforSale.aspx';
        return false;
        }
        else if (Ok!=true)
        {

         //THE VB METHOD GOES HERE     
      }
}

Я пробовал обработчик обратного вызова, и он просто работает с функцией, которая возвращает что-то / строку

и я пробовал Pagemethod, но он просто работает со статической / общей функцией. Пожалуйста, помогите мне, мне действительно это нужно. Pleasee. Спасибо

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Веб-службы .Net не могут выполнять магию, т. Е. Вы не можете отправить ответ перенаправления на запрос Ajax на сервере и ожидать, что вся страница будет перенаправлена. Единственное, что произойдет, это то, что вызов Ajax был перенаправлен на другую страницу и пытается получить данные оттуда. Если вы хотите изменить страницу в браузере клиента, вы должны сделать это на стороне клиента через JavaScript, например, document.location = url_returned_by_your_function_through_ajax_call.

1 голос
/ 23 мая 2011

Возможно, вы захотите прочитать «Введение в создание служб Windows Communication Foundation» - http://msdn.microsoft.com/en-us/library/aa480190.aspx

И особенно: «Руководство по проектированию и созданию веб-служб RESTful с WCF 3.5» - http://msdn.microsoft.com/en-us/library/dd203052.aspx

И ознакомьтесь с некоторыми библиотеками javascript, которые упрощают вызов веб-сервисов RESTful, например, jQuery - http://www.jquery.com/

С помощью jQuery вы можете выполнить вызов вашего VB.NET-кода на стороне сервера, например так:

$.ajax({  
    type: "GET",  
    contentType: 'text/json',  
    dataType: 'json',  
    url: "https://URL-TO-SERVICE-HERE/...",  
    timeout: 10000,  
    error: function () {  

        // Deal with the error  

    },  
    success: function (data) {  

        // Do something with the result
        // Example:
        if (data.dealerCode) 
            location.href = 'MyRequirements.aspx?DealerCode=' + data.dealerCode;


    }  
});  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...