我对Web开发非常新鲜,但在开发方面有很多经验.我有一个ASP页面有几个输入字段和一个提交按钮.这个提交按钮纯粹叫$.ajax,我打算在代码隐藏文件中调用一个方法.不过,我注意到两件有趣的事情.首先,无论提供什么数据,ajax调用都会成功.其次,responseText字段是整个页面的html源代码.
我已经阅读了this和其他指向webconfig的文章,但是这些解决方案似乎并没有解决我的问题.
这是asp页面:
Name:Attending:
Yes
No
Return Address:
代码背后:
using System;
using System.Web.Services;
using System.Web.UI;
namespace TestAspStuff
{
public partial class _Default : Page
{
protected void Page_Load(object sender,EventArgs e)
{
}
[WebMethod]
public static string OnSubmit(string name,bool isGoing,string returnAddress)
{
return "it worked";
}
}
}
和JavaScript:
function submit() {
var name = "my name";
var isAttending = true;
var returnAddress = "myEmail@";
SendMail(name,isAttending,returnAddress);
}
function SendMail(person,returnEmail) {
var dataValue = { "name": person,"isGoing": isAttending,"returnAddress": returnEmail };
$.ajax({
type: "POST",url: "Default.aspx/OnSubmit",data: dataValue,error: function (XMLHttpRequest,textStatus,errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},complete: function (jqXHR,status) {
alert("complete: " + status + "\n\nResponse: " + jqXHR.responseText);
}
});
}
现在,我注意到我可以将url属性更改为我想要的任何东西,并且错误方法从不被调用,状态是成功的,而responseText是整个html页面.我的webconfig有所有相应的部分(包括htmlModule部分).我在.Net 3.5中工作.我感谢任何帮助,再次,我真的很新,所以对他人来说显而易见的是很可能不明显.如果有一个更好的方法来做这个(从JavaScript调用代码隐藏方法,那就是)请随时发布.谢谢!!!