Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
C# 使用数据库创建DropDownListFor_C#_Asp.net Mvc - Fatal编程技术网

C# 使用数据库创建DropDownListFor

C# 使用数据库创建DropDownListFor,c#,asp.net-mvc,C#,Asp.net Mvc,我想用数据库在ASP.NET MVC中创建DropDownListFor,但编译器出现问题错误消息:CS1955:非可开票成员“TreeViewModel.TreeItems”不能像方法一样使用 视图模型: public class TreeViewModel { public List<DTree> leafs { get; set; } [Display(Name = "Wybierz gałąź")] public int

我想用数据库在ASP.NET MVC中创建DropDownListFor,但编译器出现问题错误消息:CS1955:非可开票成员“TreeViewModel.TreeItems”不能像方法一样使用

视图模型:

public class TreeViewModel
    {
        public List<DTree> leafs { get; set; }
        [Display(Name = "Wybierz gałąź")]
        public int SelectedRootId { get; set; }
        public IEnumerable<SelectListItem> TreeItems
        {
            get { return new SelectList(leafs, "Id", "Name"); }
        }
    }
视图:

控制器:

public ActionResult Exercise()
        {
            var dt = new DbAccess();
            var listTree = dt.GetAllTree();
            var list = new List<DTree>();

            foreach (var row in listTree)
            {
                list.Add(
                    new DTree
                    {
                        Id = row.Id,
                        Name = row.Name,
                        ParentId = (Convert.ToInt32(row.ParentId) != 0) ? Convert.ToInt32(row.ParentId) : (int?)null
                    });
            }

            TreeViewModel tvm = new TreeViewModel();
            tvm.leafs = list;
            return View();
        }

        [HttpPost]
        public ActionResult Exercise(TreeViewModel tree)
        {
            var id = tree.SelectedRootId;
            ViewBag.ID = id;
            return View();
        }
只要通过模型tvm


TreeItems是TreeViewModel的成员,不是方法,因此不能像方法一样使用括号调用它

在您的视图中,尝试更改行

@Html.DropDownListFor(m => m.SelectedRootId, Model.TreeItems());


您好,在上述代码中,我们主要需要纠正两件事:

更改此行@Html.DropDownListForm=>m.SelectedRootId,Model.TreeItems;像这样@Html.DropDownListForm=>m.SelectedRootId,Model.TreeItems; 提示:已从TreeItems中删除括号,因为它不是方法

2.将viewmodel传递到练习视图

更正代码:

希望能有所帮助

谢谢


Karthik

Model.TreeItems应该是Model.TreeItems更改后是相同的吗?可以给我DTree的参考吗?我试图在小提琴手上实现它。或者最好在这里添加你的小提琴手并发布链接?
return View(tvm)
@Html.DropDownListFor(m => m.SelectedRootId, Model.TreeItems());
@Html.DropDownListFor(m => m.SelectedRootId, Model.TreeItems);
public ActionResult Exercise()
        {
            var dt = new DbAccess();
            var listTree = dt.GetAllTree();
            var list = new List<DTree>();

            foreach (var row in listTree)
            {
                list.Add(
                    new DTree
                    {
                        Id = row.Id,
                        Name = row.Name,
                        ParentId = (Convert.ToInt32(row.ParentId) != 0) ? Convert.ToInt32(row.ParentId) : (int?)null
                    });
            }

            TreeViewModel tvm = new TreeViewModel();
            tvm.leafs = list;

            //passed the model 
            return View(tvm );
        }