在MVC视图中使用if语句的最佳方式

时间:2017-07-02 14:23:15

标签: c# html asp.net-mvc

我正在做一个网络开发人员的暑期实习,这个星期五我有一个问题我不确定哪种方式是“最好的”解决方式。我这里没有代码,但因为它不是代码/语法问题,而是更多的“如何解决这个问题”问题。

基本上,我有一个带有Customer类的模型,我在我的控制器中从数据库中分配值。所以在我的CustomerController中,我有一个LINQ查询,它从数据库中获取值并将这些值分配给Customer Model中的相应变量。然后,在我的CustomerView中,我在每个Customer的表中显示这些变量。所以我有一个循环基本上说:

foreach (item in Model) 
<td>@item.Name</td>
<td>@item.Age</td>
<td>selfmadeDecryptFunction(@item.Email)</td>

等等。事实上,另一个开发人员编写了一个crypt / decrypt函数,如果值为NULL或0则该函数不起作用。有时,@ item.Email为空,因为这个解密会导致错误。因此,我想在@ item.Email为空时打印字符串NULL,而不是运行解密函数。

最好的方法是什么?我是否写了内联javascript if-else?我可以在LINQ查询或CustomerController中做些什么吗?什么是“正确”的方式?我真的不想向我的同事询问这个问题,因为它非常基本,我可以自己解决这个问题,但我想知道解决这个问题的正确方法是什么。

1 个答案:

答案 0 :(得分:1)

正如你所说:

  

因此,我想在@ item.Email时打印字符串NULL   为null,并且不运行解密函数。

您可以简单地应用 foreach (item in Model) { <td>@item.Name</td> <td>@item.Age</td> @if(item.Email!=null) { <td>item.Email</td> } else { <td>NULL</td> } } 构造来解决这个问题:

@item.Email

在上面的代码中,如果@item.Email不为null,那么它将是原样(来自Model的实际值),如果它为null,则NULL将打印在应该为{{1}的地方写的。