使用部分渲染

时间:2012-06-19 09:03:19

标签: asp.net-mvc

这是我的代码

@{
    ViewBag.Title = "MachinesManagement";
}
@using (Ajax.BeginForm("MachineList", "MachinesManagement", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "grd" }))
{

<div id="filterDiv">
@{Html.RenderPartial("/Views/MachinesManagement/MachineFilter.cshtml");}
</div>
<div id="grd">
@{Html.RenderPartial("/Views/MachinesManagement/MachineList.cshtml");}
</div>
} 

`

当我尝试运行应用程序时,我收到以下错误

“传入字典的模型项为null,但此字典需要”KCMSWebClient.MachineManagementService.NtegraSearchCriteria“类型的非null模型项。”

可以提供任何帮助。??? 感谢...

1 个答案:

答案 0 :(得分:2)

错误信息非常清楚。您需要将KCMSWebClient.MachineManagementService.NtegraSearchCriteria类的实例传递给您的部分。这可以使用RenderPartial帮助器的第二个参数来完成:

@{Html.RenderPartial(
    "/Views/MachinesManagement/MachineFilter.cshtml", 
    PASS_AN_INSTANCE_OF_THE_REQUIRED_CLASS_HERE
);}

如果您不使用第二个参数,RenderPartial方法只会传递当前视图模型(@Model)。由于我在Razor页面的顶部看不到任何@model指令,我认为您的视图不是强类型的任何模型,当您从控制器操作提供此视图时,您没有将任何模型传递给它