【问题标题】:HTML Helper checking if the date is MinValueHTML Helper 检查日期是否为 MinValue
【发布时间】:2014-03-26 18:23:12
【问题描述】:

如果我的日期是 MinValue,我可以配置 HTML Helper 以显示 String.Empty 吗?

${Html.TextBoxFor(v=>v.Date)}

我该怎么做?

【问题讨论】:

  • 我认为您的方法有误。相反,使用 ViewModel 来执行这种类型的格式化/逻辑。
  • 我同意@vidalsasoon,helper 的输出是一堆 html,所以你不能控制它的输出而不改变 helper 或者自己构建。

标签: asp.net-mvc spark-view-engine


【解决方案1】:

为什么不在你的视图中做呢?

注意:Razor 语法

@if(v.Date != DateTime.MinValue)
{
  Html.TextBoxFor(v => v.Date);
}
else {
  //show whatever
}

【讨论】:

    【解决方案2】:

    有几个类似的问题,比如

    如果您可以完全控制视图模型,一种选择是使日期字段可以为空,如果日期等于 DateTime.MinValue,则让访问器返回 null

    如果你不想改变你的视图模型,你可以write your own html helper 并把创建一个空文本框的逻辑放在那里。这样您就可以将逻辑隐藏在难以测试的地方。

    【讨论】:

      【解决方案3】:

      使您的属性可以为空,并且它不会默认为最小日期。如果这是一个数据库字段并且您不能这样做,那么您应该创建一个 ViewModel 属性,并将其与最小值进行比较,并在 get{}

      中返回 null

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-24
        • 2011-10-06
        • 2020-06-23
        • 2013-10-31
        • 1970-01-01
        相关资源
        最近更新 更多