2011-05-05 100 views
0

我想知道是否有任何方法可以調用返回字符串或其他東西的asp方法,當您處於<script></script>標記中時。在JavaScript代碼中調用ASP方法

這樣的(它不工作):

<script language="javascript" type="text/javascript"> 
    function isValid() { 
     var required = "<%= callAspMethodThatReturnsSomething() %>"; 
    } 
    </script> 

任何這方面的幫助?謝謝!

+0

如果該方法在代碼中定義這背後_should_工作。你能解釋一下什麼是不行的? – Oded 2011-05-05 09:01:26

+0

當我運行這段代碼時,''''給我'null'。其實這個方法並沒有隱藏代碼。我正在使用masterpages,方法在masterpage中。所以我在代碼隱藏中使用'Master.Method()'獲取方法... – Ozkan 2011-05-05 09:03:31

+0

當您瀏覽源代碼時,最終呈現的HTML如何呈現? – 2011-05-05 09:04:04

回答

1

問題是你打電話給我直接在內容頁面的母版頁上使用方法。

你不能那樣做 - 你需要對強類型母版頁的引用。

試試這個(asp.net 4.0):

<%:((MasterPageClassName)Page.Master).callAspMethodThatReturnsSomething()%> 

還是這個(預4.0):

<%=((MasterPageClassName)Page.Master).callAspMethodThatReturnsSomething()%> 
+0

這樣做的工作,謝謝 – Ozkan 2011-05-05 11:22:25

2

沒有直接的方法來調用上例中的c#方法。但是,你可以發送$.ajax請求到服務器,甚至使用_doPostBack(..,..)

+0

代碼位於服務器端代碼塊'<%%>'中,所以它運行服務器端。不知道你在說什麼。 – Oded 2011-05-05 09:10:32

+0

@Oded:是的,但似乎@Ozkan想從客戶端執行c#方法,而不僅僅是在頁面呈現期間。 – 2011-05-05 09:18:32

+0

如果他將服務器端代碼放在服務器端代碼塊中,則不是。我認爲他希望將返回值(可能是一個字符串)輸出到javascript。 – Oded 2011-05-05 09:21:12

0

<%callAspMethodThatReturnsSomething()%>

在< %%這種方法>將工作之前,你想要做什麼,它可能看起來發回傳像不起作用

的是,你可以創建頁面上一個新的按鈕,使它unvisible和使用它的點擊喜歡的document.getElementById(「<%= button1.ClientID%>」)事件。點擊()