【问题标题】:Populate a Partial View on page load在页面加载时填充部分视图
【发布时间】:2012-04-19 14:37:34
【问题描述】:

我正在开发一个 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);
    }

我应该不能将这里生成的视图模型发送到局部视图吗?还是我必须为局部视图创建另一个动作?如果是这样,向部分视图的控制器发送操作的正确方法是什么?

此时出现的错误是:

@Html.RenderPartial("_ShiftList",model)

// 不能将类型 void 隐式转换为对象

【问题讨论】:

  • 你能扩展“似乎不起作用”吗?你遇到了什么错误?
  • 我们真的可以使用更多数据。但是,可能不起作用的一件事是您可能需要根据使用它的上下文在“RenderPartial”中指定您的控制器。
  • 我已经更新了我的帖子以使其更加清晰,您如何指定要用于局部视图的控制器和操作,我想这是我的症结所在。

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


【解决方案1】:

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

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

【讨论】:

  • 也可以使用@Html.Partial("_shiftlist")
猜你喜欢
  • 1970-01-01
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多