Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 级联下拉列表在mvc中返回未定义_Javascript_C#_Jquery_Model View Controller_Drop Down Menu - Fatal编程技术网

Javascript 级联下拉列表在mvc中返回未定义

Javascript 级联下拉列表在mvc中返回未定义,javascript,c#,jquery,model-view-controller,drop-down-menu,Javascript,C#,Jquery,Model View Controller,Drop Down Menu,我知道这个问题在这里还有很多其他问题。但这是我对这件事的看法 homecontroller中的我的Json调用: public JsonResult GetBrand(int-id) { List resultdata=新列表(); //通过sql查询获取一些数据 使用(SqlCommand=newsqlcommand(查询,sqlconn)) { 使用(SqlDataReader=command.ExecuteReader()) { while(reader.Read()) { resultd

我知道这个问题在这里还有很多其他问题。但这是我对这件事的看法

homecontroller中的我的Json调用:

public JsonResult GetBrand(int-id)
{
List resultdata=新列表();
//通过sql查询获取一些数据
使用(SqlCommand=newsqlcommand(查询,sqlconn))
{
使用(SqlDataReader=command.ExecuteReader())
{
while(reader.Read())
{
resultdata.Add(reader.GetString(0));
}
}
}
返回Json(resultdata,JsonRequestBehavior.AllowGet);
}
我的第二个下拉列表代码:

@Html.DropDownList("Brand", new SelectList(string.Empty, "", ""), "Please select", new { @class = "form-control" })
我还尝试:

@Html.DropDownList("Brand", new SelectList(string.Empty, "div_id ", "material_name "), "Please select", new { @class = "form-control" })
还有我的剧本:

$(文档).ready(函数(){
$(“#类别”)。更改(功能(){
$.get(“GetBrand”,{id:$(“#category”).val()},函数(数据){
控制台日志(数据);
$(“品牌”).empty();
$.each(数据、函数(索引、行){
控制台日志(行);
$(“#品牌”)。追加(“+row.material_name+”)
});
});
})
});
在Chrome的F12控制台上,我可以看到我希望在下拉列表中返回的数据的实际列表,并且它是正确的(通过console.log(row);)。 但是,在下拉列表中,它显示未定义


有人对我遗漏的内容有什么建议吗?

这是我为同样遗漏了一些简单内容的人所做的修复:

                while (reader.Read())
                {
                    items.Add(new SelectListItem
                    {                           
                        
                        Value = Convert.ToString(Convert.ToInt32(reader["div_id"])),
                        Text = reader["material_name"].ToString()
                    });
                }
   

现在,它返回值。

这是我对任何人的修复,也缺少一些非常简单的东西:

                while (reader.Read())
                {
                    items.Add(new SelectListItem
                    {                           
                        
                        Value = Convert.ToString(Convert.ToInt32(reader["div_id"])),
                        Text = reader["material_name"].ToString()
                    });
                }
   

现在它返回值。

当您在控制台上打印
行时,您得到了什么值?我得到了品牌名称,例如:品牌1、品牌2等。它在下拉列表上的显示方式正是如此。如果我在Json调用中这样做:返回Json(新的选择列表(resultdata,“div_id”,“material_name”)、JsonRequestBehavior.AllowGet;我得到一个错误:内部服务器错误(500),所以我认为我的Json调用是正确的,脚本或下拉列表本身有问题???在
$中。get(“GetBrand”,…)
您需要这样写:
$。get(“/Home/GetBrand”,…)
。它没有获取控制器操作方法的路径,因此存在错误。此外,路径区分大小写。因此,请确保您在创建控制器时准确地写入控制器名称。当您在控制台上打印
时,您会得到什么值?我会得到品牌名称,例如:品牌1、品牌2等。它在下拉列表上的显示方式正是如此。如果我在Json调用中这样做:返回Json(新选择列表(resultdata,“div_id”、“material_name”)、JsonRequestBehavior.AllowGet);我得到一个错误:内部服务器错误(500),所以我认为我的Json调用是正确的,脚本或下拉菜单本身有问题???在
$.get(“GetBrand”,…)
中,您需要这样写:
$.get(“/Home/GetBrand”,…)
。它没有获取控制器操作方法的路径,因此出现错误。而且路径区分大小写。因此,请确保在创建控制器时,您所写的控制器名称与您给定的名称完全一致。