Asp.net mvc 3 用于插入的编辑器模板中不可为空的值类型

Asp.net mvc 3 用于插入的编辑器模板中不可为空的值类型,asp.net-mvc-3,mvc-editor-templates,Asp.net Mvc 3,Mvc Editor Templates,我需要与同事一起帮助解决设计决策障碍。我几乎不尊重他的意见,但我喜欢在堆栈溢出上发布问题,所以这里是:) 假设我有以下模型: public class Foo { public DateTime FooDate { get; set; } } 在我的模板中,我想创建一个表单来更新/插入此模型,因此我有以下代码: @using(Html.BeginForm(...)) { ... @Html.EditorFor(m => m.FooDate) ... } 在执行更新时,这

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

假设我有以下模型:

public class Foo
{
  public DateTime FooDate { get; set; }
}
在我的模板中,我想创建一个表单来更新/插入此模型,因此我有以下代码:

@using(Html.BeginForm(...))
{
  ...
  @Html.EditorFor(m => m.FooDate)
  ...
}
在执行更新时,这会将文本框的值设置为现有模型的值,这很好。但是,当我使用插入的空模型执行此操作时,它会将文本框设置为
1/1/0001
,这是不好的

我很清楚为什么会发生这种情况,解决方案似乎是将
FooDate
设为null,并在其上添加
[必需的]
属性。我的同事似乎不赞成这样做,因为
FooDate
属性实际上不可为空

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


还有其他人陷入这种困境吗?如果是这样的话,你采取了什么方法来解决/绕过它?

我回答了一个问题。看看这对你是否有帮助。我想这可能会解决你的问题。

我回答了一个问题。看看这对你是否有帮助。我认为这可能会解决您的问题。

谢谢Matt,我们最终也采用了此解决方案谢谢Matt,我们最终也采用了此解决方案