我有一个包含以下模型的页面
@model Justice.Domain.MyClasses.Employeekronosdisplay
我正在使用下面的下拉列表
@Html.DropDownListFor(m => m.GetEmpHoursDateRange.selectedEmplhoursdate,
Model.GetEmpHoursDateRange.EmphoursdateSelectList,
new { id = "procDateId" })
这是我正在使用的模型
public class Employeekronosdisplay
{
public Setemployeehoursdate GetEmpHoursDateRange { get; set; }
}
这是我用来将所有数据都添加到视图中的另一个模型。
public class Setemployeehoursdate
{
public string selectedEmplhoursdate { get; set; }
public IEnumerable<SelectListItem> EmphoursdateSelectList { get; set; }
}
问题:这是一个日期的下拉列表,我希望我传递给selectedEmplhoursdate属性的日期是 什么应该是我的下拉列表中的默认值。我可以毫无问题地将正确的日期传递给selectedEmplhoursdate
但是下拉列表没有显示我指定的selectedEmplhoursdate。它显示了另一个似乎是第一个的日期 我的选择列表中的项目
我该如何解决这个问题?我希望能够通过默认日期。
答案 0 :(得分:0)
老实说,我从未成为Razor方法的粉丝。只是因为当您有其他数据时,您被迫将下拉数据添加到模型 - 视图 - 视图 - 模型中,因为您只能将单个模型传递给视图。
所以我个人会这样做:
<select id="Employee">
<option>-- Please Choose --</option>
</select>
然后我会简单地使用Ajax来填充和构建下拉列表。
$(function () {
buildDropdown($('#Employee'), '/Home/GetEmployee');
});
function buildDropdown(dropdown, action) {
$.ajax({
url: action,
...
success: function(response) {
var enumerable = JSON.parse(response);
$.each(enumerable, function(index, option) {
dropdown.append($('<option></option>').val(option.Value).html(option.Label);
}
}
});
}
沿着这些方向的东西,这样它是可重复使用的。虽然它有点冗长。此外,当您需要设置所选值时,您可以执行:$('#Employee').val(content)
,将其设置为默认日期。
您的具体问题可以解决:
@Html.DropDownListFor(Model =>
Model.Employee.Name,
Model.Employee.GetDateCollection,
Id = Model.Employee.DefaultDateRecord,
" -- Please Choose -- ")