强类型的局部视图

时间:2010-11-23 15:54:12

标签: asp.net-mvc

我在动态页面中渲染强类型的局部视图。 我在控制器内部有一个方法(xyz)来填充模型。

如何填充模型并渲染此局部视图

我试过这个

<% Html.RenderPartial("partialviewname",xyz()); %>

但我得到的构建错误说没有xyz()的参考,我添加了我的控制器类作为参考,没有运气

我错过了什么吗?

3 个答案:

答案 0 :(得分:1)

什么是xyz()???

无论如何....在你的控制器中添加这样的动作

[HttpGet]
public virtual ActionResult Create() {
    MyModel dm = _manager.CreateMyModel();
    return PartialView( "MyModelView", dm );
}

然后创建一个名为“MyModelView”的部分视图,它是MyModel类的强类型,你已经完成了。

如果您需要进一步的帮助,请编辑您的问题并从示例中添加更多代码

答案 1 :(得分:1)

您无法直接在视图中从控制器调用方法。我从你的问题中得出你需要的是Html.RenderAction(“xyz”)而不是Html.RenderPartial。

然后xyz动作可以恢复模型,并返回一个PartialView(参见Lorenzo的答案),然后在主视图中呈现。

答案 2 :(得分:0)

在调用RenderPartial之前调用xyz()方法。

<% 
var myController= ViewContext.Controller as YourControllerClass; 
var myModel = myController.xyz();
%>

然后你可以使用var myModel:

<% Html.RenderPartial("partialviewname", myModel); %>