我正在使用AJAX填充一些级联组合框,如下图所示:
当在组合框中选择一个选项时,它应该填充“Municipio”组合框,做这样的事情我用AJAX调用一个名为CargarCombos的方法(int intAccion,string strCodigo),这个方法接收下一个信息:
但问题在于从AJAX方法接收响应时,它似乎没有调用前面提到的方法,而且最重要的是它只响应页面包含的相同HTML源代码,在这里看到:
如果你们能帮助我,我会非常感激。感谢。
编辑:
根据建议我正在添加AJAX命令和WEBMethod:
AJAX:
$.ajax({
type: "POST",
url: pageUrl + '/CargarCombos',
data: '{intAccion: ' + $Accion + ', strCodigo: ' + JSON.stringify($ComboBox.val()) + ' }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
PopularControl(response.d, $control);
},
failure: function(response) {
alert(response.d);
}
});
WEBMETHOD:
[WebMethod()]
public static ArrayList CargarCombos(int intAccion, string strCodigo)
{
ArrayList list = new ArrayList();
////LLamo a las variables necesarias.
BLL.cDirecciones DireccionesDAL = new BLL.cDirecciones();
Util.cFuncion oUtil = new Util.cFuncion();
DataSet oDataCombos = new DataSet();
oDataCombos = DireccionesDAL.CargarCombos(intAccion, strCodigo);
if (oDataCombos.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in oDataCombos.Tables[0].Rows)
{
list.Add(new ListItem(row.ItemArray[1].ToString(), row.ItemArray[0].ToString()));
}
}
return list;
}
答案 0 :(得分:0)
从截图中看来,您似乎正在使用WebForms。如果是这种情况,您要发布到实例或静态的方法是什么?因为如果它不是静态的,或者方法没有用WebMethod
属性标记,则会发生这种情况。这是因为您的ajax
请求只被视为正常的完整回发。
例如它应该看起来像
[WebMethod]
//assuming MyModel is the name of your model class to send back to the client.
public static MyModel CargarCombos(int intAccion, string strCodigo)
{
//whatever it is you do here
}
答案 1 :(得分:0)
如果您通过JQuery调用WebMethod,请确保将内容类型设置为JSON,例如
$.ajax({
type: "POST",
url: "Pendientes.aspx/CargarCombos",
data: "{intAccion:1, strCodigo:'BAR'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg);
}
});