 <p>First things first, you should replace the 2 lines of code you have shown in your view with a single line of code:</p> <pre><code>@Html.EditorFor(x =&gt; x.EligibleAmount) </code></pre> <p>which will take into account the <code>DisplayFormat</code> attribute you defined on your model and you don't need to repeat this format in the view. You just need to enable it in edit mode by setting the <code>ApplyFormatInEditMode</code> property to <code>true</code>:</p> <pre><code>[Display(Name = "Eligible Amount")] [RequiredIfProjectEngineerSelected("ProjectEngineerId", "", ErrorMessage = "Eligible Amount field is Required")] [DisplayFormat(DataFormatString = "{0:c}", ApplyFormatInEditMode = true)] public decimal? EligibleAmount { get; set; } </code></pre> <p>Alright, this solves the displaying part. But the model binding part is still an issue. For that you could write a custom model binder which will take into account the format defined in your <code>DisplayFormat</code> attribute. I have shown an example of such a model binder with DateTime at <a href="http://stackoverflow.com/a/7836093/29407"><code>this post</code></a>. All you have to do is adapt it for the <code>decimal</code> time which should be a trivial task.</p>