簡體   English   中英

如何使用ajax將javascript值傳遞給aspx c#

[英]How to pass javascript values to aspx c# using ajax

我找不到將值從 javascript 文件(我從 onclick 事件的 html 文件中獲得)傳遞到 aspx.cs 文件的方法。

我嘗試使用以下代碼。 每篇文章似乎都以這種方式顯示,但錯誤不斷被調用,也嘗試使用“類型”而不是“方法”。

.js 文件:

 //get 'name' variable here $.ajax({ url: 'WebForm.aspx/Send', dataType: "json", method: 'post', contentType: "application/json; charset=utf-8", data: { name: name }, success: msgsuccess, error: msgerror });

WebForm.aspx.cs 文件:

    [WebMethod]
    public static string Send(string name)
    {//breakpoint here
        //code
    }

代碼永遠不會到達 aspx.cs 文件中的斷點,因此代碼值永遠不會被傳遞。

這是我在堆棧溢出中的第一篇文章,如果格式有誤,請見諒。

您需要向頁面(或其 MasterPage)添加一個ScriptManager控件,並確保ScriptManagerEnablePageMethods屬性為true

例如,當頁面或ScriptManager頁具有這樣的ScriptManager控件時:

<asp:ScriptManager runat="server">
        ...
</asp:ScriptManager>

然后添加EnablePageMethods屬性並將其設置為 true:

<asp:ScriptManager runat="server" EnablePageMethods="true">
        ...
</asp:ScriptManager>

請注意,當頁面的母版頁已有一個ScriptManager控件時,您無法將其添加到頁面。


此外,您可以簡化從 JavaScript 調用該方法的過程。 您可以簡單地使用:

PageMethods.Send(name, msgsuccess, msgerror);

[WebMethod] s解析JSON,因此您需要將請求數據作為字符串發送:

$.ajax({
  url: 'WebForm.aspx/Send',
  dataType: "json",
  method: 'post',
  contentType: "application/json; charset=utf-8",
  data: JSON.stringify({ name: name }), // use JSON.stringify here
  success: msgsuccess,
  error: msgerror
});

其他一切都應該按預期工作。

問題解決了:

按照@TylerRope 的建議檢查控制台(使用 F12)並得到錯誤號 401(未經授權)。

有了這個,我找到了這篇文章的正確答案並解決了錯誤。 如果您知道此解決方案可能導致的任何副作用,請分享。

感謝您的幫助!

暫無
暫無

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

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