2015-09-21 101 views
0

下面是一個例子:如何從JavaScript傳遞服務器端方法的參數值?

的JavaScript:

var b = 'Banana'; 
var list= <%= getJson() %>; // want to pass b? 

C#方法:

using System.Web.Script.Serialization; 
.... 
public string getJson(string x) 
{ 
     var list = new List<object>{new []{ "1","Apple"}, new []{ "2",x}}; 
     return (new JavaScriptSerializer()).Serialize(list); 
} 

如何傳遞變量b當我打電話的getJSON( )來自Jav的 aScript?

+0

Heave你試過ECHO嗎? – durbnpoisn

+0

@durbnpoisn:我怎樣才能回聲呢?你能告訴我代碼片段嗎? –

回答

1

問題是,服務器端代碼執行並生成頁面(包括JavaScript在這裏只是文本)。該頁面然後被髮送到執行javascript的瀏覽器。到那時,爲服務器端做任何事情已經太遲了。

的選項有:

  • 做一個GET/POST /相似整個頁面返回給服務器,與JS的表單字段的新變量。這是微不足道的,但會導致整頁刷新,並越來越不理想。
  • 使用Javascript Ajax請求將變量傳遞迴服務器並請求更新的內容。使用服務器的響應來更新用戶的頁面

有關如何使用jQuery執行後者的文檔可用here,並且字面上有成千上萬的堆棧溢出示例。

0

請記住,在頁面甚至加載之前,在服務器端處理<% ... %>標記內的所有內容。如果您需要根據變量從服務器動態加載信息,則需要發出AJAX請求。

如果可以,最簡單的方法是使用jQuery

相關問題