【问题标题】:Calling Serverside method within Client Side Function (Javascript)在客户端函数(Javascript)中调用服务器端方法
【发布时间】:2011-08-30 19:19:05
【问题描述】:

谁能帮助我在我的 javascript 函数中调用我的 VB.NET 方法?我的方法不是共享/静态的,也不返回任何东西。它只是简单地将数据保存到数据库并重定向用户。请帮助我,这是我的代码:

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,但它只适用于静态/共享功能。请帮助我,我真的很需要它。请看。谢谢

【问题讨论】:

  • 如果我的回答对您有所帮助,如果您考虑将其标记为答案或提出后续问题,我将不胜感激。

标签: javascript asp.net client client-side serverside-javascript


【解决方案1】:

您可能想阅读“构建 Windows Communication Foundation 服务简介”-http://msdn.microsoft.com/en-us/library/aa480190.aspx

尤其是:“使用 WCF 3.5 设计和构建 RESTful Web 服务的指南”-http://msdn.microsoft.com/en-us/library/dd203052.aspx

并查看一些使调用 RESTful Web 服务变得容易的 javascript 库,例如 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;


    }  
});  

【讨论】:

  • 在这段代码的哪一部分我可以调用 SaveVehicles() 方法?
  • 您将把这个 javascript sn-p 放在您在问题中写“// VB 方法在这里”的位置。您将在 sn-p 中更改“URL-TO-SERVICE-HERE”以指向您的 .svc 文件(WCF 服务) - 这将运行您的“SaveVehicles()”方法。
【解决方案2】:

.Net Web 服务无法执行魔术,即您不能对服务器上的 Ajax 请求发出重定向响应并期望整个页面被重定向。 唯一会发生的事情是 Ajax 调用被重定向到另一个页面并尝试从那里获取数据。如果要在客户端浏览器中更改页面,则必须在客户端通过 JavaScript 进行,例如document.location = url_returned_by_your_function_through_ajax_call.

【讨论】:

  • 如何调用 SaveVehicles() 方法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
相关资源
最近更新 更多