MVC model is null in controller during HTTP Post ASP.NET : <p>When I post data via submit, I see that model is null in controller. I already see that this question is asked many times, and the root cause is the name conflict between model property name and the  same name we use in action parameter of controller. But this is not the case in my scenario. Not sure why the model is null. Any help is appreciated. In the below code, "pm" variable is null.</p>

<p>View:</p>

<pre><code>&lt;div&gt;  @Html.LabelFor(model =&gt;model.procedureName)&lt;/div&gt;
&lt;div&gt;   @Html.ValidationMessageFor(model =&gt; model.procedureName)&lt;/div&gt;
&lt;div&gt;@Html.TextBoxFor(model =&gt; model.procedureName)&lt;/div&gt;
&lt;div&gt;   @Html.ValidationMessageFor(model =&gt; model.ServiceDate)&lt;/div&gt;
&lt;div&gt; @Html.TextBoxFor(model =&gt;model.ServiceDate) &lt;/div&gt;
&lt;div&gt; @using (Html.BeginForm())
          { 
          &lt;input type="submit" value="Save Procedure" id="btnPost" /&gt;
          }


&lt;/div&gt;
</code></pre>

<p>Model:</p>

<pre><code>public partial class MemberProcedure
{
    public int procedureid { get; set; }
    [Display(Name = "Name")]
    [Required(ErrorMessage = "Please select a name")]
    public string procedureName { get; set; }
    public string updatedbyUserName { get; set; }
    public Nullable&lt;System.DateTime&gt; LastUpdatetime { get; set; }
    public Nullable&lt;System.DateTime&gt; Createtime { get; set; }
    [Required(ErrorMessage = "Please select a service date")]
    public Nullable&lt;System.DateTime&gt; ServiceDate { get; set; }
}
</code></pre>

<p>Controller action method:</p>

<pre><code>[HttpPost]
    public ActionResult Procedure(MemberProcedure pm)
    {
        if (ModelState.IsValid)
        {

           savedata....
        }
        return View(pm);
    }
</code></pre>

<p>HTML:</p>

<pre><code>&lt;input id="procedureName" name="procedureName" type="text" value=""&gt;
&lt;input id="ServiceDate" name="ServiceDate" type="text" value=""&gt;
</code></pre>
