What is the proper way to submit data from Parent form with partial view MVC 4? <p>The Main Controller</p> <pre><code>public class TestPartialController : Controller { // // GET: /TestPartial/ public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(Main model) { HttpContext.Items.Add("MainModel", model); return View(); } public ActionResult PartialA() { return PartialView(); } [HttpPost] public ActionResult PartialA(PartialA a) { if (HttpContext.Items["MainModel"] != null) { Main model =(Main) HttpContext.Items["MainModel"]; model.PA = a; } return PartialView(); } public ActionResult PartialB() { return PartialView(); } [HttpPost] public ActionResult PartialB(PartialB b) { if (HttpContext.Items["MainModel"] != null) { Main model = (Main)HttpContext.Items["MainModel"]; model.PB = b; } SubmitDatatoDB(); return PartialView(); } public void SubmitDatatoDB() { if (HttpContext.Items["MainModel"] != null) { Main model = (Main)HttpContext.Items["MainModel"]; //SubmitDatatoDB } } } </code></pre> <p>Models:-</p> <pre><code>namespace TestingMVC4.Models { public class Main { public string Main1 { get; set; } public string Main2 { get; set; } public virtual PartialA PA { get; set; } public virtual PartialB PB { get; set; } } public class PartialA { public string UserName { get; set; } public string UserID { get; set; } } public class PartialB { public string UserNameB { get; set; } public string UserIDB { get; set; } } } </code></pre> <p>View :-</p> <pre><code>@model TestingMVC4.Models.Main @{ ViewBag.Title = "Index"; } &lt;h2&gt;Index&lt;/h2&gt; @using (Html.BeginForm()) { @Html.ValidationSummary(true) &lt;fieldset&gt; &lt;legend&gt;Main&lt;/legend&gt; &lt;div class="editor-label"&gt; @Html.LabelFor(model =&gt; model.Main1) &lt;/div&gt; &lt;div class="editor-field"&gt; @Html.EditorFor(model =&gt; model.Main1) @Html.ValidationMessageFor(model =&gt; model.Main1) &lt;/div&gt; &lt;div class="editor-label"&gt; @Html.LabelFor(model =&gt; model.Main2) &lt;/div&gt; &lt;div class="editor-field"&gt; @Html.EditorFor(model =&gt; model.Main2) @Html.ValidationMessageFor(model =&gt; model.Main2) &lt;/div&gt; &lt;div&gt; @Html.Action("PartialA","TestPartial") &lt;/div&gt; &lt;div&gt; @Html.Action("PartialB","TestPartial") &lt;/div&gt; &lt;p&gt; &lt;input type="submit" value="Create" /&gt; &lt;/p&gt; &lt;/fieldset&gt; } @model TestingMVC4.Models.PartialA @using (Html.BeginForm()) { @Html.ValidationSummary(true) &lt;fieldset&gt; &lt;legend&gt;PartialA&lt;/legend&gt; &lt;div class="editor-label"&gt; @Html.LabelFor(model =&gt; model.UserName) &lt;/div&gt; &lt;div class="editor-field"&gt; @Html.EditorFor(model =&gt; model.UserName) @Html.ValidationMessageFor(model =&gt; model.UserName) &lt;/div&gt; &lt;div class="editor-label"&gt; @Html.LabelFor(model =&gt; model.UserID) &lt;/div&gt; &lt;div class="editor-field"&gt; @Html.EditorFor(model =&gt; model.UserID) @Html.ValidationMessageFor(model =&gt; model.UserID) &lt;/div&gt; &lt;/fieldset&gt; } </code></pre> <p>Mine Question is if doing like this, the Index of HTTPPOST of main view will fire first. than follow by Partial view A and Partial View B. In this case I need to store the data in HttpContext.Items and call the submit to Database in the last Partial view B.</p> <p>What I want is fire the Partial view A and B first, and store the data into Main View's model and call the SubmitDatatoDB function in Main View's POST Action. </p>