我正在部分查看包含部门信息的部门.我有员工的页面视图.在员工视图中我使用部门视图来显示员工部门.我的员工模型如下
- class Employee
- {
- public string EmployeeName{get;set};
- public Department EmployeeName{get;set};
- }
- class Department
- {
- public string DepartmentName{get;set};
- }
我在员工页面视图上提交了按钮.
当我提交员工视图时,我将Department对象视为null.
你能否告诉我如何在回发期间获得儿童部门模型.
Coltroller代码
- [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);
- }
查看
部门
- @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>
雇员
- @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")
- }
解决方法
首先尝试搜索.之前已经多次询问过这个问题.
这是一种方法:
但是这个看起来更像是你所追求的:
Post a form with multiple partial views
使用editortemplates代替partials.
您遇到的问题是,当您的DepartmentName文本框未正确命名时,您的控制器无法读取它.你的POST将是EmployeeName = Prashant& DepartmentName = Phy因此Department为null,因此出错.