asp.net pagemethod调用,使用jquery,返回错误状态500

发布于 2024-10-22 12:19:45 字数 1360 浏览 1 评论 0原文

我一直无法找到解决这个问题的任何好的方法,所以我需要一些帮助。

我有一个需要用 jquery 调用的 PageMethod。客户端代码如下所示:

<script type="text/javascript">
    $(function () {
        $("#MainContent_ddl_antal").change(function () {
            var selectedvalue = $(this).val();
            //alert(selectedvalue);
            $.ajax({
                type: "POST",
                url: "betaling.aspx/GetTotPrice",
                data: "{'antal':" + selectedvalue + "}",

                //data: JSON.stringify({ antal: selectedvalue }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    // Set label text to method's return.
                    alert(msg.d);
                    $('#<%= lbl_totpris.ClientID %>').html(msg.d);
                },
                error: function (error) {
                    alert(error.status);
                }
            });

        });
    });

</script>

PageMethod 的代码隐藏如下所示:

[WebMethod]
public static double GetTotPrice(int antal)
{
    double totpris = 0;
    Product _product = Product.GetProductByDate(DateTime.Today);

    if (_product != null)
    {
        totpris = _product.ProductNuPris * antal;
    }
    return totpris;
}

调用返回错误 500。我看不出其中的原因。

I haven't been able to find any good solutions to this issue, so I need som help.

I have a PageMethod that I need to call with jquery. The client code looks like this:

<script type="text/javascript">
    $(function () {
        $("#MainContent_ddl_antal").change(function () {
            var selectedvalue = $(this).val();
            //alert(selectedvalue);
            $.ajax({
                type: "POST",
                url: "betaling.aspx/GetTotPrice",
                data: "{'antal':" + selectedvalue + "}",

                //data: JSON.stringify({ antal: selectedvalue }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    // Set label text to method's return.
                    alert(msg.d);
                    $('#<%= lbl_totpris.ClientID %>').html(msg.d);
                },
                error: function (error) {
                    alert(error.status);
                }
            });

        });
    });

</script>

and the codebehind PageMethod looks like this:

[WebMethod]
public static double GetTotPrice(int antal)
{
    double totpris = 0;
    Product _product = Product.GetProductByDate(DateTime.Today);

    if (_product != null)
    {
        totpris = _product.ProductNuPris * antal;
    }
    return totpris;
}

The call returns an error 500. I can't see the reason for this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半透明的墙 2024-10-29 12:19:45

请检查您在这里得到的内容: var selectedvalue = $(this).val(); 我认为这不会返回整数值。我已使用以下列表尝试了您的代码,它工作正常:

<select id="testList">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>

[WebMethod]
public static double GetTotPrice(int antal)
{
    return 5.0 * antal;
}

如果选择列表中的值正确,则此行可能会导致问题:

Product _product = Product.GetProductByDate(DateTime.Today);

请尝试使用 Visual Studio 和 FireBug (Firefox) 调试它一次。

Please check what you are getting here: var selectedvalue = $(this).val(); I think this is not returning integer value. I have tried your code with following list and it works fine:

<select id="testList">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>

[WebMethod]
public static double GetTotPrice(int antal)
{
    return 5.0 * antal;
}

If the value from select list is correct then this line may be causing problem:

Product _product = Product.GetProductByDate(DateTime.Today);

Please try debuging it once using Visual Studio and FireBug (Firefox).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文