這很奇怪。我的onSuccess()在JavaScript文件中的函數返回我的整個網頁的大規模HTML代碼,而不是我實際上是從我的C#的WebMethod返回ASP.NET PageMethod onSuccess函數返回一個HTML字符串
1)我在Windows 10
運行Visual Studio 2015年的價值2)調試時,我在SignupAccount C#方法中保留了一個斷點。斷點沒有被擊中。它沒有達到那一點。但的onSuccess函數被調用
這裏有一個解釋:
ASP.NET Web窗體的HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<!--Code-->
</head>
<body class="account2 signup" data-page="signup">
<!--Code-->
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<input type="text" name="firstname" id="firstname" placeholder="First Name" required autofocus>
<input type="text" name="lastname" id="lastname" placeholder="Last Name" required autofocus>
<button type="submit" onclick="signup()" id="submit-form" class="btn btn-lg btn-dark btn-rounded" data-style="expand-left">Sign In</button>
<script src="JS/Account.js"></script>
</form>
</body>
</html>
的WebMethod在後面的C#代碼:
[WebMethod]
public static string SignupAccount(string fname, string lname)
{
return "OK";
}
Javascript:
function signup() {
var fname = document.getElementById("firstname").value;
var lname = document.getElementById("lastname").value;
PageMethods.SignupAccount(fname, lname, onSuccess, onFailure);
function onSuccess(val) {
alert(val);
//Technically, this should display "OK". But instead it displays a HTML String
//of my entire Web Page starting from the <html> tag to the end
}
function onFailure() {}
}
爲什麼會這樣呢?我相信程序和代碼是正確的。這與Visual Studio有關嗎?
編輯
這是我從的onSuccess功能
您是否在瀏覽器開發人員工具 - >網絡選項卡中看到任何XHR條目SignupAccount? –
@DananjayaKuppu不,我沒有看到任何條目。我試着用一個按鈕和一個web方法創建一個新的web表單,我仍然將這個大量的html字符串作爲onSuccess返回值。我認爲有配置 – Dinuka
它可能會重複到一個問題:[post](http://stackoverflow.com/questions/10658061/calling-asp-net-page-method-from-javascript-not-working) –