如何从ASP.Net页面方法打印返回类型?

时间:2013-02-11 19:28:43

标签: asp.net ajax

请阅读底部的更新。

我创建了一个页面方法,用于发送包含联系表单信息的电子邮件。表单在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

是否找不到实际的页面方法?

1 个答案:

答案 0 :(得分:0)

我通过将联系表单移动到根目录来修复它,但我仍然不明白我应该在哪里指定路径。感觉它是自动的,它只是想查看根目录。