将字符串转换为int32时出错

时间:2016-08-11 17:04:33

标签: c# asp.net

以下方法有效:

[System.Web.Services.WebMethod]
public string GetData(string year)
{
    Int32 iYear = DateTime.Now.Year;
    if (DateTime.IsLeapYear(iYear))
    {
        return "true";
    } else
    {
        return "false";
    }
}

但如果我将2015年作为字符串传递一年,则以下代码不起作用。

using System;

public partial class _Default : System.Web.UI.Page
{
public string output = "";
protected void Page_Load(object sender, EventArgs e)
{
    if (Request.Params["callback"] != null)
    {
        output = Request.Params["callback"] + "('" + GetData(Request.Params["year"]) + "')";
    }
}

[System.Web.Services.WebMethod]
public string GetData(string year)
{
    int iYear = Convert.ToInt32(year);

    if (DateTime.IsLeapYear(iYear))
    {
        return "true";
    } else {
        return "false";
    }
}
}

我很难搞清楚自己的错误。我将年份作为字符串传递给jQuery Ajax调用。

任何想法为什么?

1 个答案:

答案 0 :(得分:0)

发现错误,错误发生在Ajax调用中,我将日期括在引号中。感谢大家的支持和帮助。

这就是我所拥有的     数据:{年:"' + $(' #txtYear')。val()+'"}

当我删除引号时,它有效。     数据:{年:+ $(' #txtYear')。val()}