请阅读底部的更新。
我创建了一个页面方法,用于发送包含联系表单信息的电子邮件。表单在colorbox窗口中启动,表单是它自己的.aspx页面。
我能够调用页面方法,但它出错了,即使我将它作为字符串返回,我似乎无法打印实际的异常。
页面方法的摘要是
[WebMethod]
public static string SendEmail(string name, string email, string message)
{
try
{
// send the email
return "success";
}
catch(Exception ex)
{
return ex.ToString();
}
}
CLIENT CODE:
<script type="text/javascript">
// add event handler for submit button
$addHandler($get('SendEmailPageMethod'), 'click', EmailPageMethod);
function EmailPageMethod() {
var name = $get('name').value;
var email = $get('email').value;
var message = $get('message').value;
// call pagemethod sending form data
PageMethods.SendEmail(name, email, message, SendEmailCallback, ErrorCallback);
}
function SendEmailCallback(resultString) {
alert(resultString);
}
function ErrorCallback(error) {
alert(error.get_message());
}
</script>
似乎每次调用errorcallback函数,但error.get_message只是告诉我pagemethod失败了。
我试过
function SendEmailCallback(resultString) {
alert(resultString);
}
但它只是说[对象]。
我也试过
function SendEmailCallback(resultString) {
alert(String(resultString));
}
但它仍然说[object Object]。
有没有办法可以打印整个异常以查看发生了什么?我对Page Methods非常新,所以我在这里打了一堵墙。
感谢。
更新 - 当我按下提交时出现此错误。
我收到了这个错误:
POST
http://localhost:1427/PortfolioWebsite/ContactForm.aspx/SendEmail 404 (Not Found) (program):5
Sys.Net.XMLHttpExecutor.executeRequest (program):5
Sys.Net._WebRequestManager.executeRequest (program):5
Sys.Net.WebRequest.invoke (program):5
Sys.Net.WebServiceProxy.invoke (program):5
Sys.Net.WebServiceProxy._invoke (program):5
PageMethods.SendEmail (program):16
PageMethods.SendEmail (program):34
EmailPageMethod (program):11
b
是否找不到实际的页面方法?
答案 0 :(得分:0)
我通过将联系表单移动到根目录来修复它,但我仍然不明白我应该在哪里指定路径。感觉它是自动的,它只是想查看根目录。