如何在回发期间在asp.net mvc中保留部分视图模型数据

前端之家收集整理的这篇文章主要介绍了如何在回发期间在asp.net mvc中保留部分视图模型数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在部分查看包含部门信息的部门.我有员工的页面视图.在员工视图中我使用部门视图来显示员工部门.我的员工模型如下
  1. class Employee
  2. {
  3. public string EmployeeName{get;set};
  4. public Department EmployeeName{get;set};
  5.  
  6. }
  7.  
  8. class Department
  9. {
  10. public string DepartmentName{get;set};
  11. }

我在员工页面视图上提交了按钮.
当我提交员工视图时,我将Department对象视为null.
你能否告诉我如何在回发期间获得儿童部门模型.
Coltroller代码

  1. [HttpGet]
  2. public ActionResult Employee2()
  3. {
  4. Employee e = new Employee();
  5. e.EmployeeName = "Prashant";
  6. e.Department = new Department() { DepartmentName = "Phy" };
  7.  
  8. return View(e);
  9. }
  10.  
  11. [HttpPost]
  12. public ActionResult Employee2(Employee e)
  13. {
  14.  
  15. return View(e);
  16. }

查看

部门

  1. @model MvcApplication2.Models.Department
  2.  
  3. <script src="~/Scripts/jquery-1.7.1.min.js"></script>
  4. <script src="~/Scripts/jquery.validate.min.js"></script>
  5. <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
  6.  
  7. <fieldset>
  8. <legend>Department</legend>
  9.  
  10. <div class="editor-label">
  11. @Html.LabelFor(model => model.DepartmentName)
  12. </div>
  13. <div class="editor-field">
  14. @Html.EditorFor(model => model.DepartmentName)
  15. @Html.ValidationMessageFor(model => model.DepartmentName)
  16. </div>
  17.  
  18.  
  19. </fieldset>
  20.  
  21. <div>
  22. @Html.ActionLink("Back to List","Index")
  23. </div>

雇员

  1. @model MvcApplication2.Models.Employee
  2. @{
  3. ViewBag.Title = "Employee";
  4. }
  5. <h2>
  6. Employee</h2>
  7. @using (Html.BeginForm("Index","Home"))
  8. {
  9.  
  10. <fieldset>
  11. <legend>Employee</legend>
  12. <div class="editor-label">
  13. @Html.LabelFor(model => model.EmployeeName)
  14. </div>
  15. <div class="editor-field">
  16. @Html.EditorFor(model => model.EmployeeName)
  17. @Html.ValidationMessageFor(model => model.EmployeeName)
  18. </div>
  19. @Html.Partial("Department",Model.Department)
  20. <p>
  21. <input type="submit" value="EmployeeSave" />
  22. </p>
  23. </fieldset>
  24. }
  25.  
  26. @section Scripts {
  27. @Scripts.Render("~/bundles/jqueryval")
  28. }

解决方法

首先尝试搜索.之前已经多次询问过这个问题.

这是一种方法

mvc partial view post

摘要:使用自己的提交按钮将每个部分包装在多个表单标记中.

但是这个看起来更像是你所追求的:

Post a form with multiple partial views

使用editortemplates代替partials.

您遇到的问题是,当您的DepartmentName文本框未正确命名时,您的控制器无法读取它.你的POST将是EmployeeName = Prashant& DepartmentName = Phy因此Department为null,因此出错.

猜你在找的asp.Net相关文章