【问题标题】:How to check condition for razor ternary operator to string如何检查剃刀三元运算符字符串的条件
【发布时间】:2017-05-18 17:55:06
【问题描述】:
<input type="text" class="date" value="@item.MarksEntryLastDate.Equals("01/01/0001 12:00:00 AM") ? @System.DateTime.Now.ToString("dd MMM yyyy"): @item.MarksEntryLastDate  />

大家好,我是 mvc 框架的新手。请帮我在cshtml中使用剃刀三元运算符的条件。

【问题讨论】:

  • 为什么不在控制器端执行三元运算符检查?尝试将其缩短为 &lt;input type="text" class="date" value=@item.MarksEntryLastDate /&gt; 并在控制器操作方法中使用:MarksEntryLastDate = MarksEntryLastDate.Equals("01/01/0001 12:00:00 AM") ? DateTime.Now.ToString("dd MMM yyyy") : MarksEntryLastDate

标签: c# html razor


【解决方案1】:

您需要在整个@ 周围加上括号:

<input type="text" class="date" value="@(item.MarksEntryLastDate.Equals("01/01/0001 12:00:00 AM") ? System.DateTime.Now.ToString("dd MMM yyyy") : item.MarksEntryLastDate)"  />

编辑

正如 Esko 指出的那样,与日期而不是字符串相比,您可能会更好:

item.MarksEntryLastDate.Equals(System.DateTime.MinValue)

【讨论】:

  • 正确,使用 DateTime.MinValue 代替字符串比较可能也是一个好习惯。
  • @Esko 是的,我认为您需要比较日期而不是字符串,但不确定
猜你喜欢
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 1970-01-01
  • 2016-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多