我正在尝试向服务器发布请求,但是当我使用调试器时它不会命中?
服务器:
public partial class _Default : System.Web.UI.Page
{
public string HitThis()
{
return "braza";
}
}
<script type="text/javascript">
var myRequest = new Request({
method: 'post',
url: '/Default.aspx/HitThis',
onSuccess: function () {
alert('good');
},
onFailure: function () {
alert('nope');
}
});
myRequest.send();
</script>
答案 0 :(得分:0)
如果您希望能够调用HitThis
方法,则需要使用Web Method
属性对该方法进行静态修饰,并在ScriptManager
<上启用页面方法/ p>
示例:
<asp:ScriptManager ID="ScriptManager" runat="server"
EnablePageMethods="true" />
[WebMethod]
public static string HitThis()
{
return "Hello World";
}
答案 1 :(得分:0)
您首先需要了解ASP.NET AJAX脚本服务或PageMethod的工作原理!页面方法必须使用WebMethod
属性进行修饰,并且需要是静态的。
[WebMethod]
public static string HitThis()
{
}
请参阅this article,其中说明了使用jquery调用页面方法。你可以用mootools采用它。但请注意,页面方法需要内容类型为JSON数据,响应也将采用JSON格式。
如果您想使用普通表单发布,也许可以使用Request.PathInfo在ASP.NET页面中编写自己的布线逻辑。例如,
protected void Page_Load(object sender, EventArgs e)
{
if (this.Request.PathInfo == "HitThis")
{
HitThis();
}
}
在您的方法中,您需要使用Response
(HttpResponse),并且在修改响应之后,您需要结束它(HttpResponse.End),以便不会发生正常的页面处理。如果您的方法需要参数,则必须通过表单数据和/或查询字符串传递它们。