【发布时间】:2016-03-22 06:06:29
【问题描述】:
所以我有一个 ID、EmployeeID、日期等形式的简单数据库表。它创建了一个正常的模型:
public partial class WorkItem
{
public int ID { get; set; }
public int EmployeeID { get; set; }
public int LocationID { get; set; }
[DataType( DataType.Date )]
[Display( Name = "Start date" )]
public System.DateTime StartDate { get; set; }
当我需要增强此模型的功能时会出现问题,因此我创建了一个视图模型来每周对工作项进行分组。
public class WeeklyWorkItemsViewModel
{
public WorkItem WorkItemMonday { get; set; }
public WorkItem WorkItemTuesday { get; set; }
在我的视图(绑定到视图模型)中,所有的 DateTime 字段都运行良好:
<div class="form-group">
@Html.LabelFor( model => model.WorkItemMonday.StartDate, "Week start date", htmlAttributes: new { @class = "control-label col-md-2" } )
<div class="col-md-10">
@Html.EditorFor( model => model.WorkItemMonday.StartDate, new { htmlAttributes = new { @class = "form-control" } } )
@Html.ValidationMessageFor( model => model.WorkItemMonday.StartDate, "", new { @class = "text-danger" } )
</div>
</div>
在尝试绑定 dropdownlilst 时出现问题,它被正确填充,但在控制器中看不到更改。
<div class="form-group">
@Html.LabelFor( model => model.WorkItemMonday.EmployeeID, "EmployeeID", htmlAttributes: new { @class = "control-label col-md-2" } )
<div class="col-md-10">
@Html.Hidden( "selectedEmployee" )
@Html.DropDownList( "EmployeeID", null, htmlAttributes: new { @class = "form-control" } )
@Html.ValidationMessageFor( model => model.WorkItemMonday.EmployeeID, "", new { @class = "text-danger" } )
</div>
</div>
开始日期已在控制器中更新。
在挠了挠头之后,我终于不得不使用以下方法解决这个问题:
@Html.Hidden( "selectedEmployee" )
并在 JQuery 中更新它。我确实尝试过使用@html.DropDownListFor,但到目前为止没有任何乐趣。 在我拔掉我所有的头发之前,谁能看看有什么问题。
【问题讨论】:
标签: asp.net-mvc razor asp.net-mvc-5