我正在做一个网络开发人员的暑期实习,这个星期五我有一个问题我不确定哪种方式是“最好的”解决方式。我这里没有代码,但因为它不是代码/语法问题,而是更多的“如何解决这个问题”问题。
基本上,我有一个带有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中做些什么吗?什么是“正确”的方式?我真的不想向我的同事询问这个问题,因为它非常基本,我可以自己解决这个问题,但我想知道解决这个问题的正确方法是什么。
答案 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}的地方写的。