首页 > 解决方案 > 如何在 ASP.NET MVC 中将模型从视图传递到 PartialView?

问题描述

我有一个视图ShowAll,我想在其中调用另一个视图EmployeeRecordCustomerRecord. 它给了我错误

消息“对象引用未设置为对象的实例。” 细绳

@foreach (var item in Model){EmployeeRecord视图附近。

我不知道它会如何击中下面的EmployeeRecord控制器。

谁能帮帮我吗。

ClsShowAll 模型

  public class ClsShowAll
    {
        public IEnumerable<ClsEmployeeRecord> clsEmployeeRecord { get; set; }
       public IEnumerable<ClsCustomerRecord> clsCustomerRecord { get; set; }  
    }

控制器

       public ActionResult ShowAll()
        {
            return View();
        }

查看“显示全部”

        @model xx.xx.xx.ShowAll.ClsShowAll

             <div class="container">
                <div class="panel panel-default">                                           
                        <div class="panel-body">
                  @RenderPage("~/Views/EmployeeRecord/EmployeeRecord.cshtml")

                    </div>

                </div>

                <div class="panel panel-default">                                            
                       <div class="panel-body"> 

                   @RenderPage("~/Views/CustomerRecord/CustomerRecord.cshtml")
                        </div>

                </div>

          </div>

员工记录视图

        @model IEnumerable<xx.xx.xx.EmployeeRecord.ClsEmployeeRecord>

                <table>
                    <tr>
                        <th>
                            @Html.DisplayNameFor(m => m.EmployeeName)
                        </th>

                    </tr>

                    @foreach (var item in Model)
                    {
                        <tr>
                            <td>
                                @Html.DisplayFor(modelItem => item.EmployeeName)
                            </td>

                        </tr>
                    }
                </table>

控制器

public ActionResult EmployeeRecord()
        {
           return View(Details.EmployeeList());
        }

标签: asp.net-mvc

解决方案


你需要使用@Html.Partial(...).

如果您想将模型传递给PartialView,那么您可以使用 @Html.Partial("EmployeeRecord", model.Employee)

<div class="container">
   <div class="panel panel-default">
      <div class="panel-body">
         @Html.Partial("EmployeeRecord")
      </div>
   </div>
   <div class="panel panel-default">
      <div class="panel-body"> 
         @Html.Partial("CustomerRecord")
      </div>
   </div>
</div>

您可以下载 Adam Freeman 所著的 Pro ASP.NET MVC 5 书的示例源代码,并查看如何PartialView在 -


推荐阅读