a declaración @if else en Razor no funciona

Estoy usando un if if en la vista Razor para verificar valores nulos como este:

 @foreach (var item in Model)
    {
        <tr id="@(item.ShopListID)">
            <td class="shoptablename">@Html.DisplayFor(modelItem => item.Name)
            </td>
            <td class="shoptableamount">
                @if (item.Amount == null)
                {
                    Html.Display("--");
                }
                else
                {
                    String.Format("{0:0.##}", item.Amount);
                }
            </td>
        </tr>

    }

Sin embargo, no importa que la cantidad de mi modelo sea nula o tenga un valor, el html procesado no contiene ningún valor en la cantidad.

Me pregunto por qué está sucediendo esto. ¿Alguna idea

Gracias..

EDITAR

Decidí hacerlo en el controlador:

   // Function to return shop list food item amount
    public string GetItemAmount(int fid)
    {
        string output = "";

        // Select the item based on shoplistfoodid
        var shopListFood = dbEntities.SHOPLISTFOODs.Single(s => s.ShopListFoodID == fid);

        if (shopListFood.Amount == null)
        {
            output = "--";
        }
        else
        {
            output = String.Format("{0:0.##}", shopListFood.Amount);
        }
        return output;
    }

y llame a Ver como:

 <td class="shoptableamount">
                @Html.Action("GetItemAmount", "Shop", new { fid = item.ShopListFoodID })
            </td>

Respuestas a la pregunta(8)

Su respuesta a la pregunta