我正在使用與地圖相關的GIS地圖功能的第三方控件。 我有需要從JavaScript內調用C#方法。我選擇使用PageMethods
這樣的:當你轉換你的方法爲[WebMethod]
在WebMethod內部強制回發
在這種方法中,我通過在鼠標的座標
PageMethods.getFeature(x,y)
就像一個魅力,只要它返回我的地圖特徵。我會在地圖上突出顯示。
從研究我發現你不能直接從[WebMethod]內部訪問UI,所以我決定設置一個會話變量和回發。如果會話變量存在,回發時我會進行必要的UI更改。
我WebMethod
看起來是這樣的:
[WebMethod(EnableSession = true)]
public static void getFeature(float x, float y)
{...
some code in here.
}
更新 這是我的jQuery:
<script>
$(document).ready(function (e) {
$(".MyMap").click(function (e) {
var posX = $(this).position().left;
var posY = $(this).position().top;
PageMethods.getFeature(e.pageX-posX, e.pageY-posY);
});
});
</script>
如何強制WebMethod
內回傳。我知道回發的大多數方式都不起作用。
您不能讓瀏覽器將表單發送到服務器,從服務器河這是客戶端操作。您可以編寫JavaScript,當它從Web服務接收到響應時導致回發。 – 2014-08-28 14:47:01
@ BenRobinson這是一個好點...嗯。 javascript用於獲取MouseClick事件並知道圖像被點擊的位置。這傳遞給了C#中的方法。有沒有另一種方法來實現這一點,而不使用'WebMethod'。我正在使用jQuery的JavaScript函數。 – logixologist 2014-08-28 14:52:27
作爲jQuery ajax調用的結果,您希望發生什麼? MVC和Web API控制器也可以處理Ajax請求,Web API特別強大且靈活。 – 2014-08-28 14:54:39