我有用户控制,我在几个视图上呈现。我想在 usercontrol 中显示 viewdata,但是 viewdata 必须在控制器方法中填充,所以我需要在每个视图的每个控制器方法上填充 viewdata,我在其中渲染 usercontrol。有没有简单的解决方案?
问问题
585 次
1 回答
2
有一个用于该控件的控制器,例如
菜单控制器
用动作方法
RenderMenu()
{
**do your work to get the data here and preferrably strong type it**
return PartialView("NameOfYourAscxFile", yourObject);
}
如果您将控件命名为 RenderMenu.ascx,则可以这样做
RenderMenu()
{
**do your work to get the data here and preferrably strong type it**
return PartialView(yourObject);
}
或者,也许将它命名为 Menu.ascx 并使用这样的方法 Menu 会更有意义
Menu()
{
**do your work to get the data here and preferrably strong type it**
Menu myMenuObject = Repository.GetMenu(...);
return PartialView(myMenuObject);
}
您的 Menu.ascx 开始看起来像这样
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<mynamespace.Menu>" %>
要在视图中使用它,您可以这样做:
<% Html.RenderAction("Menu", "Menu"); %>
高温高压
于 2010-04-18T12:46:31.177 回答