如何在ASP.NETMVC中为部分视图创建控制器?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

如何为部分视图创建单独的控制器和模型?我想要能够把这个部分的视图放在网站上的任何地方,所以它需要它自己的控制器。我现在正在渲染这个部分

@Html.Partial("_Testimonials")
提问于
用户回答回答于

为什么不使用Html.RenderAction()

然后你可以把以下任何控制器(甚至为它创建一个新的控制器):

[ChildActionOnly]
public ActionResult MyActionThatGeneratesAPartial(string parameter1)
{
    var model = repository.GetThingByParameter(parameter1);
    var partialViewModel = new PartialViewModel(model);
    return PartialView(partialViewModel); 
}

然后你可以创建一个新的局部视图,并PartialViewModel让它成为它的继承。

对于Razor,视图中的代码块如下所示:

@{ Html.RenderAction("Index", "Home"); }

对于WebFormsViewEngine,它看起来像这样:

<% Html.RenderAction("Index", "Home"); %>
用户回答回答于

它不需要自己的控制器。可以使用

@Html.Partial("../ControllerName/_Testimonials.cshtml")

这可以从任何页面渲染部分。只要确保相对路径是正确的。

扫码关注云+社区