I am having partial view Department containing department information. I have Page view of Employee. in Employee view i am using partial view of department to show employees department. My employee model is as below
class Employee
{
public string EmployeeName{get;set};
public Department EmployeeName{get;set};
}
class Department
{
public string DepartmentName{get;set};
}
I have submit button on employee page view. When i submit the employee view I am getting Department object as null. Could you please suggest me how i can get child Department model during postback. Coltroller code
[HttpGet]
public ActionResult Employee2()
{
Employee e = new Employee();
e.EmployeeName = "Prashant";
e.Department = new Department() { DepartmentName = "Phy" };
return View(e);
}
[HttpPost]
public ActionResult Employee2(Employee e)
{
return View(e);
}
Views
Department
@model MvcApplication2.Models.Department
<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<fieldset>
<legend>Department</legend>
<div class="editor-label">
@Html.LabelFor(model => model.DepartmentName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DepartmentName)
@Html.ValidationMessageFor(model => model.DepartmentName)
</div>
</fieldset>
<div>
@Html.ActionLink("Back to List", "Index")
</div>
Employee
@model MvcApplication2.Models.Employee
@{
ViewBag.Title = "Employee";
}
<h2>
Employee</h2>
@using (Html.BeginForm("Index","Home"))
{
<fieldset>
<legend>Employee</legend>
<div class="editor-label">
@Html.LabelFor(model => model.EmployeeName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.EmployeeName)
@Html.ValidationMessageFor(model => model.EmployeeName)
</div>
@Html.Partial("Department", Model.Department)
<p>
<input type="submit" value="EmployeeSave" />
</p>
</fieldset>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}