0

请阅读底部的更新。

我创建了一个页面方法,它发送一封包含联系表单信息的电子邮件。该表单在颜色框窗口中启动,并且该表单是它自己的 .aspx 页面。

我可以调用 page 方法,但它出错了,即使我将它作为字符串返回,我似乎也无法打印实际的异常。

页面方法的总结是

 [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]。

有没有办法可以打印整个异常以查看发生了什么?我对页面方法很陌生,所以我在这里碰壁了。

谢谢。

更新 - 当我按下提交时出现此错误。

我收到了这个错误:

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

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

4

1 回答 1

0

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

于 2013-02-12T01:52:39.327 回答