簡體   English   中英

在ASP.NET中使用javascript傳遞在函數后面調用c#的變量值

[英]Pass variable value calling c# behind function with javascript in asp.net

這是我的情況:我有一個可以合並tiff文件的asp網站。 因此,要執行此操作,我需要使用ac#函數,並且在javascript事件后調用它。 C#是這樣的:

public void mergeImages(string initialUrl, string lastImageUrl)
        {....}

我創建了兩個隱藏字段,如下所示:

 <input type="hidden" id="hi1" value="D:\\ProvaUpload\\1.tif" />

獲取值以傳遞給函數,因為我不知道我可以通過哪種方式將js變量傳遞給它。 我以這種方式調用該函數:

'<%mergeImages(par1,par2); %>';

我可以通過哪種方式將變量值傳遞給函數?

使用WebMethod屬性裝飾方法:

[WebMethod]
public void mergeImages(string initialUrl, string lastImageUrl)
        {....}

獲取隱藏的字段,並將其傳遞給Jquery Ajax call ,方法是單擊按鈕

var hdn1 = $('#hi1').val();
var hdn2 = $('#hi2').val();

var parameters = '{initialUrl:' + hdn1 + ', lastImageUrl:' + hdn2 + '}';

    $.ajax({
        type: "POST",          
        url: "page.aspx/mergeImages",          
        data: parameters,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {

        }
    });

請參考stackoverflow線程。 ASP.NET-將JSON從jQuery傳遞到ASHX

這將幫助您了解使用處理程序文件(ashx)進行ajax json請求。

您可以使用此概念來滿足您的要求。

您無需在JavaScript中調用CS方法。 您應該在任何類型的處理程序文件(例如ashx,asmx或任何其他服務)上使用ajax發布。

實現此目的的一種簡單方法:-

因為您已經有兩個隱藏字段,但是必須向其中添加runat屬性,以便可以在服務器端獲取它們的值。 我們說:-

 <input type="hidden" id="hi1" value="D:\\ProvaUpload\\1.tif" runat="server" />
 <input type="hidden" id="hi2" value="D:\\ProvaUpload\\2.tif" runat="server" />

並設置一個隱藏按鈕:-

<asp:button id="btnhidden" runat="server" Text="hide" Onclick="btnhidden_Click" Style="display:none"/>

現在,您可以單擊javascript函數中的按鈕:-

function UploadFinished()
{
   //your JS code:-
   // After finish uploading ..Click the button .. i have used jquery for simplicity:-
   $('input[id$="btnhidden"]').click();
}

現在在您的代碼后面:-

protected void btnhidden_Click(Object sender,EventArgs e)
{
   // you can get hidden fields values here ....
   string val1=hi1.Value;
   string val2=hi2.Value;
   // Call your merge function here :-
    mergeImages(val1,val2);
}

無需執行任何操作,您只需要單擊一個額外的按鈕,該按鈕將隱藏在輸出中:

<asp:button id="btnGetAndPassvalues" runat="server" Text="hide" Onclick="btnGetAndPassvalues_Click" Style="display:none"/>

現在,javascript函數應如下所示:

<script>
    $('[id$=btnUpload]').live('click', function (e) {
        // code to finish Upload prosess
        $('[id$=btnGetAndPassvalues]').click();
    });
</script>

僅此而已,在click事件中,獲取隱藏字段的值:

protected void btnGetAndPassvalues(Object sender,EventArgs e){
 string hd1=hiden1.Value;
 string hd2=hiden2.Value;
}

或者您可以撥打AJAX電話,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM