C# 如何将数据传递到为各种页面提供公共控件的布局

C# 如何将数据传递到为各种页面提供公共控件的布局,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我目前正在开发一个ASP.Net项目,它提供了一个包含许多控件的布局,这些控件应该呈现在用户访问的每个页面上。例如,好友列表应该总是显示在页面的右侧,就像facebook使用的那样 考虑到我希望避免代码重用,我计划将整个控件移动到一个共享页面,其他站点都将呈现到该页面中 但是,我现在面临的问题是如何将所有数据从后端获取到此控件 我读了一点,发现我也可以在布局中使用模型,但考虑到这可能不是可能需要模型数据的唯一控件,该模型可能会迅速扩大,我会约束自己在该项目中使用的任何其他模型中使用基础模型,因为

我目前正在开发一个ASP.Net项目,它提供了一个包含许多控件的布局,这些控件应该呈现在用户访问的每个页面上。例如,好友列表应该总是显示在页面的右侧,就像facebook使用的那样

考虑到我希望避免代码重用,我计划将整个控件移动到一个共享页面,其他站点都将呈现到该页面中

但是,我现在面临的问题是如何将所有数据从后端获取到此控件

我读了一点,发现我也可以在布局中使用模型,但考虑到这可能不是可能需要模型数据的唯一控件,该模型可能会迅速扩大,我会约束自己在该项目中使用的任何其他模型中使用基础模型,因为在我的共享视图中,每个页面都需要控件所需的数据

我该怎么处理呢?有没有一种方法可以将数据传递到共享页面中的公共控件,而不会有很多缺点


或者更好,我是否错过了实现此功能的其他方法,这将使我的工作更轻松?

RenderAction html帮助程序可能对您的布局页面有用。RenderAction、局部视图等@John您知道我在哪里可以找到相关文档吗?我在MSDN上找不到任何东西,只是记住一些blogsKeep,您也不必从视图加载所有数据。您可以使用webapi,然后在客户端上获取好友列表数据。这允许您将大量工作推送到客户机上,在客户机和api中缓存一些数据,并通过不必在每次访问页面时加载大量数据来保持视图和控制器的清洁。例如,朋友列表可能不会显示任何内容,直到有人单击某个按钮,然后该按钮将数据加载到可视列表/模式中,等等。@sossenbinder