簡體   English   中英

在aspx Webform中從Javascript調用C#函數,然后重新加載頁面

[英]Call C# function from Javascript in aspx webform and then reload page

試圖弄清楚如何在Web表單中調用ac#函數。 我同時嘗試了ajax和windows.location,但是可能就在我的路上了。 試圖在SpeakerList.aspx / update上發送我的C#代碼,然后附加兩個我在javascript中擁有的變量,這應該不會太糟糕。 但是希望它命中C#函數然后重新加載頁面,因此希望這里只是一個簡單的調用而已。

 buttons: {
                    "Save": function () {
                        var combo = ASPxClientControl.GetControlCollection().GetByName('DropDownList1');
                        var value = combo.GetSelectedItem().value;
                        var billID = $("#billID").val();
                        window.location = "SpeakerList.aspx/updateRec";
                    }

您可能想嘗試使用WebMethods:

http://aspalliance.com/1922_PageMethods_In_ASPNET_AJAX.all

這樣,您就可以在后面使用JavaScript來調用頁面代碼中的函數。

假設您正在使用MVC,則可能要返回JSON結果。 在客戶端網頁中使用Json的一種簡單方法是使用JQuery。 您可以將JSON作為網頁的輸出返回,但我不建議這樣做。 創建一個表示JSON方法的單獨的服務點。

很難說出您實際上要完成什么,但是JSON方法的正常使用模式是將參數作為查詢字符串的一部分提供(可以根據需要使用路由進行重構)。 結果只是一個JSON數據包。

就個人而言,我喜歡用於服務器端JSON的JSON.Net,但實際上並不需要它。 查找JSONMethod以獲取示例等,這些示例將向您展示如何執行此操作。

從瀏覽器客戶端,JQuery有一個json方法,但是我個人建議使用更通用的ajax方法JQuery,以便您可以使用處理程序來獲得成功,錯誤和完成。 例如

  $.ajax({
    url: "http:...",
    data: queryparm,
    cache:false,
    timeout:15000,
    success: function(data){
      jresult = $.parseJSON(data);
      ...
    },

    error:function (xhr, ajaxOptions, thrownError)
    {
      setErrorMsg("Error getting search results: " + thrownError);
    } 
  });

編輯-實際上,我也使用webforms做過同樣的事情,代碼本質上是相同的(如果您在服務器端使用JSON.Net)。 您沒有用於使REST符合url的路由選項,但是作為內部json網絡服務,您可能根本不會在乎。

作為網頁(.aspx)頁面,可以使用“回發”,這是Web表單最簡單的方法。 如果不傳回本機“控件”值,則始終可以聲明一些隱藏字段以用於數據傳遞。 如果您不知道如何執行此操作,則需要閱讀有關使用Web表單的教程。

暫無
暫無

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

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