【发布时间】:2012-04-19 14:37:34
【问题描述】:
我正在开发一个 MVC 项目并使用 Ajax 来显示班次列表。
这是我的父页面,shifts.chtml:
@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);
}
我应该不能将这里生成的视图模型发送到局部视图吗?还是我必须为局部视图创建另一个动作?如果是这样,向部分视图的控制器发送操作的正确方法是什么?
此时出现的错误是:
@Html.RenderPartial("_ShiftList",model)
// 不能将类型 void 隐式转换为对象
【问题讨论】:
-
你能扩展“似乎不起作用”吗?你遇到了什么错误?
-
我们真的可以使用更多数据。但是,可能不起作用的一件事是您可能需要根据使用它的上下文在“RenderPartial”中指定您的控制器。
-
我已经更新了我的帖子以使其更加清晰,您如何指定要用于局部视图的控制器和操作,我想这是我的症结所在。
标签: asp.net-mvc asp.net-ajax partial-views