Sitecore's Field.HasValue returning false, even when there is a Value?
<p>I'm attempting to use Sitecore's <code>Field.HasValue</code> property in Razor syntax to test a particular field, but no matter what I try, the field always seems to be false.</p>

<ul>
<li>I'm using Sitecore 8. </li>
<li>The Sitecore field, <em>"Header Number"</em> is a Single-Line Text field</li>
</ul>

<p>Here's what I'm trying:</p>

<pre><code>@{
    var phoneNumber = "";
    var numberField = Model.Item.Fields["Header Number"];
    if (numberField != null &amp;&amp; numberField.HasValue)
    {
        phoneNumber = numberField.Value;
    }
}
</code></pre>

<p>As you can see in the screenshot below:</p>

<ul>
<li><code>numberField</code> is being correctly set to a Sitecore Field</li>
<li><code>numberField.HasValue</code> is reporting <code>false</code></li>
<li><strong>However</strong> <code>numberField.Value</code> is (correctly) returning the value of the field</li>
<li>Because of the failure to fire the <code>if</code> block, <code>phoneNumber</code> is never set:</li>
</ul>

<p><a href="https://i.stack.imgur.com/viVIB.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/viVIB.png" alt="Screenshot of Breakpoint showing variable values"></a></p>

<p>Is this a bug? Am I using <code>HasValue</code> incorrectly or is there another Sitecore method I should be using to safely test if fields have a value? </p>