2012-04-19 45 views
0

我正在开发一个MVC项目,并使用Ajax来显示转换列表。填充页面加载的部分视图

这里是我的父页面,shifts.c​​html:

@model UI.ViewModels.ViewModelShiftList 

<h2>Shifts</h2> 

@Ajax.ActionLink("View All Shifts", "AllShifts", "Shifts", 
            new AjaxOptions 
            { 
             UpdateTargetId="searchResults", 
             HttpMethod="GET", //default 
             InsertionMode= InsertionMode.Replace, //replace 
             LoadingElementId="progress" 
            }) 

    <div id="searchResults"> 

    @Html.RenderPartial("_ShiftList",model) 

    </div> 

继承人对上述页面控制器动作:

public ActionResult Shifts() 
    { 
     ViewModelShiftList viewModel = new ViewModelShiftList 
     { 
      Shifts = _shiftService.GetShifts().ToList() 
     }; 
     return View(viewModel); 
    } 

如果我不能在这里发制作成局部视图模型视图?还是必须为局部视图创建另一个动作?如果是这样,将动作发送给partialview控制器的正确方法是什么?

错误IM刚开是在这一点上:

@Html.RenderPartial("_ShiftList",model) 

//不能impilicty转换类型void反对

+0

您可以展开“看起来不起作用”吗?你遇到了什么错误? – Trent 2012-04-19 15:43:44

+0

我们真的可以使用更多的数据。然而,有一件事情可能并不奏效,你可能需要在你的“RenderPartial”中指定你的控制器,这取决于它的使用环境。 – JasCav 2012-04-19 16:54:55

+0

我已更新我的帖子,使其更清晰,您如何指定您想要用于部分视图的控制器和操作,我想这是我的难点。 – Dez79 2012-04-20 11:09:24

回答

2

这是一个简单的解决......我需要添加大括号像这样。 。

@{Html.RenderPartial("_shiftlist", Model);} 
+0

也可以使用'@ Html.Partial(“_ shiftlist”)' – Manatherin 2012-04-23 14:45:27