Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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# 无法访问@Html.DropDownList值_C#_Asp.net Mvc - Fatal编程技术网

C# 无法访问@Html.DropDownList值

C# 无法访问@Html.DropDownList值,c#,asp.net-mvc,C#,Asp.net Mvc,我是ASP.NETMVC新手,尝试使用viewbag绑定dropdownlist并在controller中访问它,下面是我的代码 控制器构造函数 public HomeController() { List<SelectListItem> list = new List<SelectListItem>(); list.Add(new SelectListItem { Text="HO", Value="HO" });

我是ASP.NETMVC新手,尝试使用viewbag绑定dropdownlist并在controller中访问它,
下面是我的代码

控制器构造函数

 public HomeController()
    {
        List<SelectListItem> list = new List<SelectListItem>();
        list.Add(new SelectListItem { Text="HO", Value="HO" });
        list.Add(new SelectListItem { Text = "BIHAR", Value = "BIHAR" });
        list.Add(new SelectListItem { Text = "CHHATTISGARH", Value = "CHHATTISGARH" });
        list.Add(new SelectListItem { Text = "HARYANA", Value = "HARYANA" });
        list.Add(new SelectListItem { Text = "Madhya PRADESH", Value = "Madhya PRADESH" });
        list.Add(new SelectListItem { Text = "PUNJAB", Value = "PUNJAB" });
        list.Add(new SelectListItem { Text = "RAJASTHAN", Value = "RAJASTHAN" });
        list.Add(new SelectListItem { Text = "UTTAR PRADESH (E)", Value = "UTTAR PRADESH (E)" });
        list.Add(new SelectListItem { Text = "UTTAR PRADESH (W)", Value = "UTTAR PRADESH (W)" });
        list.Add(new SelectListItem { Text = "UTTARAKHAND", Value = "UTTARAKHAND" });
        ViewBag.StateList = list;
    }
看法

@Html.DropDownList(“StateList”,ViewBag.StateList为IEnumerable,新的{@class=“form control input sm”})
想做这样的事吗

                @Html.DropDownList( here m => m.State , ViewBag.StateList as IEnumerable<SelectListItem>, new { @class = "form-control  input-sm" })
@Html.DropDownList(此处m=>m.State,ViewBag.StateList为IEnumerable,新的{@class=“form control input sm”})
但是在dropdownlist中使用m=>m.State时出错 如何使其在控制器中工作以访问其值

更新: 在模型中声明了一个selectlist,并尝试了DropDownList for

                @Html.DropDownListFor(m=>m.State,Model.list as IEnumerable<SelectListItem> ,new { @class = "form-control  input-sm" })
@Html.DropDownListFor(m=>m.State,Model.list作为IEnumerable,新的{@class=“form control input sm”})

示例:

public class BR_Model
{
    public string State { get; set; };
    public DateTime Date { get; set; };
}
public HomeController()
    {
        [HttpGet]
        public ActionResult Create()
        {
            var list = new List<SelectListItem>
            {
                new SelectListItem {Text = "HO", Value = "HO"},
                new SelectListItem {Text = "BIHAR", Value = "BIHAR"},
                new SelectListItem {Text = "CHHATTISGARH", Value = "CHHATTISGARH"},
                new SelectListItem {Text = "HARYANA", Value = "HARYANA"},
                new SelectListItem {Text = "Madhya PRADESH", Value = "Madhya PRADESH"},
                new SelectListItem {Text = "PUNJAB", Value = "PUNJAB"},
                new SelectListItem {Text = "RAJASTHAN", Value = "RAJASTHAN"},
                new SelectListItem {Text = "UTTAR PRADESH (E)", Value = "UTTAR PRADESH (E)"},
                new SelectListItem {Text = "UTTAR PRADESH (W)", Value = "UTTAR PRADESH (W)"},
                new SelectListItem {Text = "UTTARAKHAND", Value = "UTTARAKHAND"}
            };
            ViewBag.StateList = list;
            return View();
        }

        [HttpPost]
        public ActionResult Create(BR_Model model)
        {
          return View();
        }
    }
@model BR_Model 

@using (Html.BeginForm("Create", "Home"))//Or use Ajax.BeginForm if you need
{
   <div class="form-group">
    @Html.DisplayNameFor(m => m.State )
    @Html.DropDownListFor(m => m.State , new SelectList((IEnumerable)ViewBag.StateList,"Value","Text",Model.State ))
</div>
    <input type="submit" value="Save" />
}
型号:

public class BR_Model
{
    public string State { get; set; };
    public DateTime Date { get; set; };
}
public HomeController()
    {
        [HttpGet]
        public ActionResult Create()
        {
            var list = new List<SelectListItem>
            {
                new SelectListItem {Text = "HO", Value = "HO"},
                new SelectListItem {Text = "BIHAR", Value = "BIHAR"},
                new SelectListItem {Text = "CHHATTISGARH", Value = "CHHATTISGARH"},
                new SelectListItem {Text = "HARYANA", Value = "HARYANA"},
                new SelectListItem {Text = "Madhya PRADESH", Value = "Madhya PRADESH"},
                new SelectListItem {Text = "PUNJAB", Value = "PUNJAB"},
                new SelectListItem {Text = "RAJASTHAN", Value = "RAJASTHAN"},
                new SelectListItem {Text = "UTTAR PRADESH (E)", Value = "UTTAR PRADESH (E)"},
                new SelectListItem {Text = "UTTAR PRADESH (W)", Value = "UTTAR PRADESH (W)"},
                new SelectListItem {Text = "UTTARAKHAND", Value = "UTTARAKHAND"}
            };
            ViewBag.StateList = list;
            return View();
        }

        [HttpPost]
        public ActionResult Create(BR_Model model)
        {
          return View();
        }
    }
@model BR_Model 

@using (Html.BeginForm("Create", "Home"))//Or use Ajax.BeginForm if you need
{
   <div class="form-group">
    @Html.DisplayNameFor(m => m.State )
    @Html.DropDownListFor(m => m.State , new SelectList((IEnumerable)ViewBag.StateList,"Value","Text",Model.State ))
</div>
    <input type="submit" value="Save" />
}
控制器:

public class BR_Model
{
    public string State { get; set; };
    public DateTime Date { get; set; };
}
public HomeController()
    {
        [HttpGet]
        public ActionResult Create()
        {
            var list = new List<SelectListItem>
            {
                new SelectListItem {Text = "HO", Value = "HO"},
                new SelectListItem {Text = "BIHAR", Value = "BIHAR"},
                new SelectListItem {Text = "CHHATTISGARH", Value = "CHHATTISGARH"},
                new SelectListItem {Text = "HARYANA", Value = "HARYANA"},
                new SelectListItem {Text = "Madhya PRADESH", Value = "Madhya PRADESH"},
                new SelectListItem {Text = "PUNJAB", Value = "PUNJAB"},
                new SelectListItem {Text = "RAJASTHAN", Value = "RAJASTHAN"},
                new SelectListItem {Text = "UTTAR PRADESH (E)", Value = "UTTAR PRADESH (E)"},
                new SelectListItem {Text = "UTTAR PRADESH (W)", Value = "UTTAR PRADESH (W)"},
                new SelectListItem {Text = "UTTARAKHAND", Value = "UTTARAKHAND"}
            };
            ViewBag.StateList = list;
            return View();
        }

        [HttpPost]
        public ActionResult Create(BR_Model model)
        {
          return View();
        }
    }
@model BR_Model 

@using (Html.BeginForm("Create", "Home"))//Or use Ajax.BeginForm if you need
{
   <div class="form-group">
    @Html.DisplayNameFor(m => m.State )
    @Html.DropDownListFor(m => m.State , new SelectList((IEnumerable)ViewBag.StateList,"Value","Text",Model.State ))
</div>
    <input type="submit" value="Save" />
}
公共家庭控制器()
{
[HttpGet]
公共操作结果创建()
{
变量列表=新列表
{
新建SelectListItem{Text=“HO”,Value=“HO”},
新建SelectListItem{Text=“BIHAR”,Value=“BIHAR”},
新建SelectListItem{Text=“CHHATTISGARH”,Value=“CHHATTISGARH”},
新建SelectListItem{Text=“HARYANA”,Value=“HARYANA”},
新建SelectListItem{Text=“中央邦”,Value=“中央邦”},
新建SelectListItem{Text=“PUNJAB”,Value=“PUNJAB”},
新建SelectListItem{Text=“RAJASTHAN”,Value=“RAJASTHAN”},
新建SelectListItem{Text=“北方邦(E)”,Value=“北方邦(E)”,
新建SelectListItem{Text=“北方邦(W)”,Value=“北方邦(W)”,
新建SelectListItem{Text=“UTTARAKHAND”,Value=“UTTARAKHAND”}
};
ViewBag.StateList=列表;
返回视图();
}
[HttpPost]
公共行动结果创建(BR_模型)
{
返回视图();
}
}
查看:

public class BR_Model
{
    public string State { get; set; };
    public DateTime Date { get; set; };
}
public HomeController()
    {
        [HttpGet]
        public ActionResult Create()
        {
            var list = new List<SelectListItem>
            {
                new SelectListItem {Text = "HO", Value = "HO"},
                new SelectListItem {Text = "BIHAR", Value = "BIHAR"},
                new SelectListItem {Text = "CHHATTISGARH", Value = "CHHATTISGARH"},
                new SelectListItem {Text = "HARYANA", Value = "HARYANA"},
                new SelectListItem {Text = "Madhya PRADESH", Value = "Madhya PRADESH"},
                new SelectListItem {Text = "PUNJAB", Value = "PUNJAB"},
                new SelectListItem {Text = "RAJASTHAN", Value = "RAJASTHAN"},
                new SelectListItem {Text = "UTTAR PRADESH (E)", Value = "UTTAR PRADESH (E)"},
                new SelectListItem {Text = "UTTAR PRADESH (W)", Value = "UTTAR PRADESH (W)"},
                new SelectListItem {Text = "UTTARAKHAND", Value = "UTTARAKHAND"}
            };
            ViewBag.StateList = list;
            return View();
        }

        [HttpPost]
        public ActionResult Create(BR_Model model)
        {
          return View();
        }
    }
@model BR_Model 

@using (Html.BeginForm("Create", "Home"))//Or use Ajax.BeginForm if you need
{
   <div class="form-group">
    @Html.DisplayNameFor(m => m.State )
    @Html.DropDownListFor(m => m.State , new SelectList((IEnumerable)ViewBag.StateList,"Value","Text",Model.State ))
</div>
    <input type="submit" value="Save" />
}
Create.cshtml:

public class BR_Model
{
    public string State { get; set; };
    public DateTime Date { get; set; };
}
public HomeController()
    {
        [HttpGet]
        public ActionResult Create()
        {
            var list = new List<SelectListItem>
            {
                new SelectListItem {Text = "HO", Value = "HO"},
                new SelectListItem {Text = "BIHAR", Value = "BIHAR"},
                new SelectListItem {Text = "CHHATTISGARH", Value = "CHHATTISGARH"},
                new SelectListItem {Text = "HARYANA", Value = "HARYANA"},
                new SelectListItem {Text = "Madhya PRADESH", Value = "Madhya PRADESH"},
                new SelectListItem {Text = "PUNJAB", Value = "PUNJAB"},
                new SelectListItem {Text = "RAJASTHAN", Value = "RAJASTHAN"},
                new SelectListItem {Text = "UTTAR PRADESH (E)", Value = "UTTAR PRADESH (E)"},
                new SelectListItem {Text = "UTTAR PRADESH (W)", Value = "UTTAR PRADESH (W)"},
                new SelectListItem {Text = "UTTARAKHAND", Value = "UTTARAKHAND"}
            };
            ViewBag.StateList = list;
            return View();
        }

        [HttpPost]
        public ActionResult Create(BR_Model model)
        {
          return View();
        }
    }
@model BR_Model 

@using (Html.BeginForm("Create", "Home"))//Or use Ajax.BeginForm if you need
{
   <div class="form-group">
    @Html.DisplayNameFor(m => m.State )
    @Html.DropDownListFor(m => m.State , new SelectList((IEnumerable)ViewBag.StateList,"Value","Text",Model.State ))
</div>
    <input type="submit" value="Save" />
}
@model BR\u model
@使用(Html.BeginForm(“Create”,“Home”)//或者如果需要,使用Ajax.BeginForm
{
@DisplayNameFor(m=>m.State)
@DropDownListFor(m=>m.State,新选择列表((IEnumerable)ViewBag.StateList,“值”,“文本”,Model.State))
}

错误是什么?无法将Lambda表达式转换为'string'类型,因为它不是委托类型您需要使用DropdownList,因为它必须是@Html.DropDownListFor(m=>m.State,ViewBag.StateList as IEnumerable,new{@class=“form control input sm”})Thaks,我学会了绑定DropdownList的新方法,对初学者来说是一个很好的学习,但我的问题是-没有在返回视图中传递模型对象,在传递模型对象之后它就可以工作了。再次感谢您抽出时间