我正在使用Visual Studio 2015并且项目在.NET 4.5.2中 我选择了默认模板,所以有一些东西像Master Site和Default.aspx解决方案,但我没有碰他们...如何在ASP.net中设置PageMethods
我添加了一个页面,Welcome.aspx
和似乎无法让PageMethods正常工作。
Welcome.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Welcome.aspx.cs" Inherits="MyProject.Welcome" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
<link rel="stylesheet" href="CSS/WelcomeCSS.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css" />
</head>
<body>
<form id="WelcomeForm" runat="server">
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server"></asp:ScriptManager>
<div> ... some more html... non <asp:controls>...</div>
<script type="text/javascript">
//PageMethods.TestMarker(); // throws exception - PageMethods is undefined.
$.ajax({
type: "POST",
dataType: 'text',
contentType: "text",
url: "Welcome.aspx/TestMarker()",
data: "{val = adrian}", // parameters for method
success: function (dt) { alert("HI"+dt); }, //all Ok
error: function (dt) { alert(dt); } // some error
}); // doesn't seem to throw an error but C# never gets called
</script>
</form>
</body>
</html>
Welcome.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace HomeVenues
{
public partial class Welcome : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
protected static void TestMarker(string val)
{
return;
}
}
}
我已经有以下引用: - System.Web.Extensions程序
问:我错过了打电话给我的服务器端代码吗?
方法应该是公开的,而不是保护。 – Boney
更改您的TestMarker静态方法公共而不是受保护的 – UJS
更容易使用PageMethods方式吗? – fifamaniac04