无法使用asp.net中的ajax帖子访问后面的代码

时间:2014-01-25 11:10:47

标签: asp.net ajax

这是我背后的代码:

enter image description here

这是我的KO脚本:

enter image description here

这是我点击提交按钮时的结果 enter image description here

我的代码有什么问题吗?

2 个答案:

答案 0 :(得分:1)

我已下载您的解决方案并使其正常运行

App_Start\RouteConfig.cs中,您需要删除以下行:

settings.AutoRedirectMode = RedirectMode.Permanent;

您的网络方法也需要static

答案 1 :(得分:1)

App_Start\RouteConfig.cs 改变

settings.AutoRedirectMode = RedirectMode.Permanent; 

settings.AutoRedirectMode = RedirectMode.Off;

如果Web方法在代码后面不是静态的,它将无法工作 如果您真的想继续使用代码,可以通过创建静态方法来实现 例如:

public class Customer
{
    public string CustomerId { get; set; }
    public string ContactName { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
    public string PostalCode { get; set; }
    public string Phone { get; set; }
    public string Fax { get; set; }
}

[WebMethod]
public static List<Customer> GetCustomers()
{
    string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
    using (SqlConnection con = new SqlConnection(constr))
    {
        using (SqlCommand cmd = new SqlCommand("SELECT TOP 10 * FROM Customers"))
        {
            cmd.Connection = con;
            List<Customer> customers = new List<Customer>();
            con.Open();
            using (SqlDataReader sdr = cmd.ExecuteReader())
            {
                while (sdr.Read())
                {
                    customers.Add(new Customer
                    {
                        CustomerId = sdr["CustomerId"].ToString(),
                        ContactName = sdr["ContactName"].ToString(),
                        City = sdr["City"].ToString(),
                        Country = sdr["Country"].ToString(),
                        PostalCode = sdr["PostalCode"].ToString(),
                        Phone = sdr["Phone"].ToString(),
                        Fax = sdr["Fax"].ToString(),
                    });
                }
            }
            con.Close();
            return customers;
        }
    }
}
}

更简单的替代方法是使用实​​例方法创建Web服务(.ASMX)。