c#代码块中的Razor语法

时间:2014-02-13 19:39:15

标签: c# asp.net-mvc razor

尝试使用以下内容填充表格数据:

        @foreach (var mc in Model.McList)
        {
            <tr>
                <td>
                    @(@mc.Amount != null ? @mc.Amount @@ @mc.Price : null)
                </td>
            </tr>
        }

但陷入了剃刀语法错误:

  

期待:

     

期待)

     

或模糊调用:void写

金额是int?可空类型。

@(@mc.Amount != null ? @mc.Amount : null) //works only with one property
@if (@mc.Amount != null) {@mc.Amount <text>@@</text> @mc.Price} //works
@if (@mc.Amount != null) {@mc.Amount @@ @mc.Price} //error
@if (@mc.Amount != null) {@mc.Amount @:@@ @mc.Price} //error

是没有if?

检查空值的更短方法

2 个答案:

答案 0 :(得分:1)

我认为这不可行。如果必须在一行中完成,那么我得到的最接近的是:

@(@mc.Amount != null ? string.Format("{0} @ {1}", mc.Amount, mc.Price) : null)

我自己可能永远不会这样做!

答案 1 :(得分:0)

我认为你正试图制作看起来像这样的东西:

  

5 @ 20

如果是这样,您需要记住@()之间的所有内容都是纯C#代码;你需要做的是这样的事情:

@(mc.Amount != null ? string.Format("{0} @ {1}", mc.Amount, mc.Price) : "")