[英]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
控件,並確保ScriptManager
的EnablePageMethods
屬性為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.