Asp.net Ajax级联dropdownlist不适用于webservices方法

Asp.net Ajax级联dropdownlist不适用于webservices方法,asp.net,web-services,c#-4.0,ajaxcontroltoolkit,Asp.net,Web Services,C# 4.0,Ajaxcontroltoolkit,需要从另一个下拉值绑定下拉值,而不是web方法 即使在添加了web引用之后也会触发,不会显示任何错误 我得到错误*方法500 我正在使用visual studio,我将asp.net应用程序作为一个项目,将web服务作为另一个项目。我正在asp.net应用程序中使用web服务 我的web服务代码中存在某种问题。但我无法从asp.net应用程序到web服务进行连续调试 我在应用程序和web服务中都设置了断点,但在web服务中未激活断点,它显示了连接错误 在本地主机上托管时如何执行此操作 my co

需要从另一个下拉值绑定下拉值,而不是web方法 即使在添加了web引用之后也会触发,不会显示任何错误

我得到错误*方法500

我正在使用visual studio,我将asp.net应用程序作为一个项目,将web服务作为另一个项目。我正在asp.net应用程序中使用web服务

我的web服务代码中存在某种问题。但我无法从asp.net应用程序到web服务进行连续调试

我在应用程序和web服务中都设置了断点,但在web服务中未激活断点,它显示了连接错误

在本地主机上托管时如何执行此操作

my country.aspx代码


我的Web服务代码(.asmx)

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Services;
使用AjaxControlToolkit;
使用系统数据;
使用System.Data.SqlClient;
使用系统配置;
使用System.Collections.Specialized;
/// 
///cascadingdropdown的摘要说明
/// 
[WebService(命名空间=”http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]
//要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
//[System.Web.Script.Services.ScriptService]
公共类cascadingdropdown:System.Web.Services.WebService
{
SqlConnection con=新的SqlConnection(ConfigurationManager.ConnectionString[“addcontact”].ToString());
公共cascadingdropdown()
{
//如果使用设计的组件,请取消注释以下行
//初始化组件();
}
[网络方法]
公共字符串HelloWorld()
{
返回“你好世界”;
}
[网络方法]
public CascadingDropDownNameValue[]addstate(字符串状态,字符串城市)
{
con.Open();
SqlCommand cmdstate=新的SqlCommand(“从tblStates中选择stateid、statename”,con);
cmdstate.ExecuteOnQuery();
SqlDataAdapter dastate=新的SqlDataAdapter(cmdstate);
DataSet dsstate=新数据集();
dastate.Fill(dsstate);
con.Close();
列表状态名称=新列表();
foreach(dsstate.Tables[0].Rows中的DataRow dtrow)
{
字符串stateid=dtrow[“stateid”].ToString();
字符串statename=dtrow[“statename”].ToString();
Add(新的cascadingdropdownname值(statename,stateid));
}
返回statesnames.ToArray();
}
[网络方法]
public CascadingDropDownNameValue[]addcity(字符串状态,字符串城市)
{
int stateid;
StringDictionary statedetails=AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(状态);
stateid=Convert.ToInt32(statedetails[“state”]);
con.Open();
SqlCommand cmdcity=新SqlCommand(“从tblcities中选择cityid、stateid、cityname,其中stateid=@stateid”,con);
cmdcity.Parameters.AddWithValue(“@stateid”,stateid);
cmdcity.ExecuteNonQuery();
SqlDataAdapter dacity=新的SqlDataAdapter(cmdcity);
数据集dscity=新数据集();
dacity.Fill(dscity);
con.Close();
List citynames=新列表();
foreach(dscity.Tables[0]中的DataRow dtrow.行)
{
字符串cityid=dtrow[“cityid”].ToString();
字符串cityname=dtrow[“cityname”].ToString();
Add(新的cascadingdropdownname值(cityid,cityname));
}
返回citynames.ToArray();
}
}`

尝试使用AjaxControltoolkit级联下拉菜单使用的函数的标准定义:

public CascadingDropDownNameValue[] addState(String knownCategoryValues, String category, String contextKey)
{
...
}
public CascadingDropDownNameValue[] addCity(String knownCategoryValues, String category, String contextKey)
{
...
}

上下文键不是必需的参数,如果不需要,可以使用它。

我也有完全相同的问题,我找到了一个“教程”,并尝试用我自己的代码来匹配它,但我无法让它工作,我还遇到了方法500错误

请尝试100%使用此网站代码

这对我很有效,我只是一次安装了一些代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using AjaxControlToolkit;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections.Specialized;

/// <summary>
/// Summary description for cascadingdropdown
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class cascadingdropdown : System.Web.Services.WebService
{

    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["addcontact"].ToString());
    public cascadingdropdown()
    {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }
    [WebMethod]
    public CascadingDropDownNameValue[] addstate(string state, string city)
    {
        con.Open();
        SqlCommand cmdstate = new SqlCommand("select stateid,statename from tblStates", con);
        cmdstate.ExecuteNonQuery();
        SqlDataAdapter dastate = new SqlDataAdapter(cmdstate);
        DataSet dsstate = new DataSet();
        dastate.Fill(dsstate);
        con.Close();
        List<CascadingDropDownNameValue> statesnames = new List<CascadingDropDownNameValue>();
        foreach (DataRow dtrow in dsstate.Tables[0].Rows)
        {
            string stateid = dtrow["stateid"].ToString();
            string statename = dtrow["statename"].ToString();
            statesnames.Add(new CascadingDropDownNameValue(statename, stateid));
        }
        return statesnames.ToArray();

    }

    [WebMethod]
    public CascadingDropDownNameValue[] addcity(string state, string city)
    {
        int stateid;
        StringDictionary statedetails = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(state);
        stateid = Convert.ToInt32(statedetails["state"]);
        con.Open();
        SqlCommand cmdcity = new SqlCommand("select cityid,stateid,cityname from tblcities where stateid=@stateid", con);
        cmdcity.Parameters.AddWithValue("@stateid", stateid);
        cmdcity.ExecuteNonQuery();
        SqlDataAdapter dacity = new SqlDataAdapter(cmdcity);
        DataSet dscity = new DataSet();
        dacity.Fill(dscity);
        con.Close();
        List<CascadingDropDownNameValue> citynames = new List<CascadingDropDownNameValue>();
        foreach (DataRow dtrow in dscity.Tables[0].Rows)
        {
            string cityid = dtrow["cityid"].ToString();
            string cityname = dtrow["cityname"].ToString();
            citynames.Add(new CascadingDropDownNameValue(cityid, cityname));
        }
        return citynames.ToArray();
    }

}`
public CascadingDropDownNameValue[] addState(String knownCategoryValues, String category, String contextKey)
{
...
}
public CascadingDropDownNameValue[] addCity(String knownCategoryValues, String category, String contextKey)
{
...
}