在页面加载时填充部分视图

时间:2012-04-19 14:37:34

标签: asp.net-mvc asp.net-ajax partial-views

我正在开发一个MVC项目并使用Ajax来显示轮班列表。

这是我的父页面,shifting.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);
    }

我是否应该无法将此处生成的viewmodel发送到局部视图?或者我是否必须为局部视图创建另一个操作?如果是这样,将动作发送到部分视图的控制器的正确方法是什么?

此时错误即时消息:

@Html.RenderPartial("_ShiftList",model)

//不能impilicty转换类型void到对象

1 个答案:

答案 0 :(得分:2)

这是一个简单的修复...我需要像这样添加大括号..

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