从 JavaScript 触发 C# 方法并发送参数

本文关键字:并发 参数 方法 JavaScript 触发 | 更新日期: 2023-09-27 17:56:29

我正在尝试从JavaScript调用C#方法,并在调用时发送参数。我已经调用了 web 方法,但由于我无法在静态 web 方法中访问服务器端控件,因此在这种情况下我无法真正使用它。

我无法进行完整的回发,因为我需要获取 Google 地图坐标,就我而言,我以这种方式访问它们,并且我无法以不同的方式访问它们:

        var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
        var bounds = new google.maps.LatLngBounds();
        bounds = map.getBounds();    
        var latLng = map.getCenter();                
        var latSW = bounds.getSouthWest().lat();
        var lngSW = bounds.getSouthWest().lng();
        var centerLat = latLng.lat();
        var centerLng = latLng.lng();

所以现在,由于我想将其中一些参数传递给实际的 c# 函数,即使我需要执行完整的服务器端回发,只要我的后端代码中有控件,也可以。

进入服务器端后,我需要用数据集填充 asp.net 中继器控件,这是我需要触发后端方法的最大问题。

public void GetData(string latSW, string lngSW, string latNE, string lngNE)
    {
        DataTable dt = this.GetData(latSW, lngSW, latNE, lngNE);
        rptMarkers.DataSource = dt;
        rptMarkers.DataBind();
        RepDetails.DataSource = dt;
        RepDetails.DataBind();
    }

从 JavaScript 触发 C# 方法并发送参数

我不确定,从你的问题来看,你是否可以做一个完整的回帖,所以这是一个有趣的JavaScript解决方案

function myawesomejavascriptfunction(latsw,lngsw,latne,lngne)
{
 var myawesomeform=document.createElement('form');
 myawesomeform.setAttribute('method','post");
 myawesomeform.setAttribute('action','/myawesomewebendpoint');
 var myawesomelatsw=document.createElement('input');
 myawesomelatsw.setAttribute('type','hidden');
 myawesomelatsw.setAttribute('name','latsw');
 myawesomelatsw.setAttribute('value',latsw);
 var myawesomelngsw=document.createElement('input');
 myawesomelngsw.setAttribute('type','hidden');
 myawesomelngsw.setAttribute('name','lngsw');
 myawesomelngsw.setAttribute('value',lngsw);
 var myawesomelatne=document.createElement('input');
 myawesomelatne.setAttribute('type','hidden');
 myawesomelatne.setAttribute('name','latne');
 myawesomelatne.setAttribute('value',latne);
 var myawesomelngne=document.createElement('input');
 myawesomelngne.setAttribute('type','hidden');
 myawesomelngne.setAttribute('name','lngne');
 myawesomelngne.setAttribute('value',lngne);
 document.getElementsByTagName('body')[0].appendChild(myawesomeform);
 myawesomeform.submit();
}

/myawesomewebendpoint 的终结点方法将使用 GetData() 方法调用类并传递参数。

它会起作用,只要我没有抓住棍子的完全错误的一端。