我的viewmodel绑定到我的ASP.NET MVC表单,
public class JobViewModels
{
public DateTime StartTime { get; set; } = DateTime.Today.AddDays(-1);
public DateTime EndTime { get; set; } = DateTime.Today;
}
查看:
new AjaxOptions
{
HttpMethod = "post",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "updatOverViewSection"
}))
{
<tr>
<td class="form-group">
@Html.LabelFor(m => m.StartTime)
@Html.EditorFor(m => m.StartTime, new { @class = "form-control" })
</td>
<td class="form-group">
@Html.LabelFor(m => m.EndTime)
@Html.EditorFor(m => m.EndTime, new { @class = "form-control" })
</td>
<td>
<label></label>
<button type="submit" class="btn btn-primary">Search</button>
</td>
</tr>
</table>
}
</div>
功能明智它工作正常。但是当我查看视图时,当页面呈现时,它看起来像是跟随,
但是当我从选择器中选择一个日期时间时,它会将其格式更改为以下内容。现在我能想到解决的唯一方法是,在模型中有一个字符串日期时间属性并调用startDateTime.ToString("DD-MM-YYYY hh:MM:ss")
,但这似乎不是最有效的方式,我可能是错的。
答案 0 :(得分:1)
您可以使用@Html.TextBoxFor()
@Html.TextBoxFor(m => m.StartTime, "{0:dd-MMM-yyyy hh:mm:ss tt}", new { @class = "form-control" })
,其中第二个参数是格式字符串,例如
DisplayFormatAttribute
或者,您可以将EditorFor()
应用于您的属性,[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy hh:mm:ss tt}", ApplyFormatInEditMode = true)]
public DateTime StartTime { get; set; }
方法将尊重该属性
@Html.EditorFor(m => m.StartTime, new { @class = "form-control" })
作为旁注,您使用@Html.EditorFor(m => m.StartTime, new { htmlAttributes = new { @class = "form-control" } })
不会将类属性添加到表单控件。它必须是
EditorFor()
但仅在MVC-5.1或更高版本中支持使用captureUserMedia
添加html属性