用于插入的编辑器模板中的非可空值类型

时间:2011-09-01 23:49:04

标签: asp.net-mvc-3 mvc-editor-templates

我需要帮助解决与同事的设计决策障碍。我几乎不尊重他的意见,但喜欢在Stack Overflow上发布问题,所以这里有:)

假设我有以下型号:

public class Foo
{
  public DateTime FooDate { get; set; }
}

在我的模板中,我想创建一个表单来对这个模型进行更新/插入,所以我有以下代码:

@using(Html.BeginForm(...))
{
  ...
  @Html.EditorFor(m => m.FooDate)
  ...
}

进行更新时,会将文本框的值设置为现有模型的值,这很好。但是,当我使用插入的空模型执行此操作时,它会将文本框设置为1/1/0001,这不是很好。

对我来说很明显,为什么会发生这种情况,而解决方案似乎是让FooDate可以为空,并在其上加上[Required]属性。我的同事似乎并不赞成这一点,因为FooDate属性不是真的可以为空。

另一种选择是为我想的插入和更新提供不同的表单模板,但这在其他方面同样浪费。

还有其他人遇到这种困境吗?如果是这样,你采取了什么途径来解决/解决它?

1 个答案:

答案 0 :(得分:0)

我回答了similar question here。看看这对你有帮助。我认为它可以解决你的问题。