C# 无法访问@Html.DropDownList值
我是ASP.NETMVC新手,尝试使用viewbag绑定dropdownlist并在controller中访问它,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" });
下面是我的代码 控制器构造函数
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的新方法,对初学者来说是一个很好的学习,但我的问题是-没有在返回视图中传递模型对象,在传递模型对象之后它就可以工作了。再次感谢您抽出时间