如何从数据库中获取所选的drown drop值?我将员工详细信息存储在一个表中,其中包含下拉选择值(整数)以及其他表下拉值和文本。
我的模特
public class EmployeeDetails
{
public int empid {set;get;}
public string empname{set;get;}
public string empdesig{set;get;}
public decimal empsal{set;get;}
public int education{set;get;}
public DateTime time{set;get;}
public string dropdownname { set; get; }
}
public class DropDownList
{
public int dropdownId { set; get; }
public string dropdownName { set; get; }
}
public class DisplayEmployeeViewModel
{
public IEnumerable<EmployeeDetails> EmployeeDetails { set; get; }
public DisplayCreateEmployeeViewModel createemployee { set; get; }
public string TabName { set; get; }
public List<SelectListItem> DropdownSelectListItems
{
get
{
var dropdown = (new DropdownRepository()).GetDropdownTypes();
var entityList = dropdown.Select(x => new SelectListItem()
{
Text = x.dropdownName,
Value = x.dropdownId.ToString()
});
return entityList.ToList();
}
}
}
public class DisplayCreateEmployeeViewModel
{
public EmployeeDetails EmployeeDetails { set; get; }
public int empid { set; get; }
public string empname { set; get; }
public string empdesig { set; get; }
public decimal empsal { set; get; }
public int education { set; get; }
public DateTime time { set; get; }
public string dropdownname { set; get; }
public List<SelectListItem> DropdownSelectListItems
{
get
{
var dropdown = (new DropdownRepository()).GetDropdownTypes();
var entityList = dropdown.Select(x => new SelectListItem()
{
Text = x.dropdownName,
Value = x.dropdownId.ToString()
});
return entityList.ToList();
}
}
}
查看
<div>
<table id="tblemployeedetails" class="table table-hover table-bordered table-responsive " >
<thead style="background-color:black;color:white; ">
<tr>
<th></th>
<th>Employee Name</th>
<th>Employee Designation</th>
<th>Enployee Education</th>
<th>Employee Salary</th>
</tr>
</thead>
<tbody>
@foreach (EmployeeDetails details in Model.EmployeeDetails)
{
<tr>
<td>@Html.CheckBox("status" + details.empid, new {value=details.empid,@class="detailCheckBox" })</td>
<td>@Html.TextBox(details.empname, details.empname, new {@class="txtdisable" })</td>
<td>@Html.TextBox(details.empdesig, details.empdesig, new { @class = "txtdisable" })</td>
<td>@Html.DropDownList(details.education.ToString(),Model.DropdownSelectListItems, new { @class = "txtdisable" })</td>
<td>@Html.TextBox(details.empsal.ToString(), details.empsal, new { @class = "txtdisable" })</td>
</tr>
}
</tbody>
</table>
</div>
我正在显示获取下拉列表并显示的代码。 在这里,我获得了下拉列表。但我想获得带有选定文本的列表(存储值应该选择)
怎么做
答案 0 :(得分:0)
当您选择SelectListItem
时,只需添加:
Selected = x.dropdownName == dropdownname
但是,只要ModelState
选项列表中的值可以绑定,就不需要这样做。我不确定你在视图中到底做了什么,但是Html.DropDownList
的第一个参数应该对应于模型上的属性,因为它需要在post上绑定回该属性。如果它确实匹配属性,则Razor将使用该属性的值自动在选择列表中设置适当的选定值。对于它的价值,使用*For
系列助手时会更容易:
@Html.DropDownListFor(m => m.SomeProperty, Model.SomePropertyChoices)
通过这种方式,你可以通过表达式知道你绑定了一些真实的东西,而不是仅仅希望你的字符串名称是正确的并且会绑定。