0

我有用户控制,我在几个视图上呈现。我想在 usercontrol 中显示 viewdata,但是 viewdata 必须在控制器方法中填充,所以我需要在每个视图的每个控制器方法上填充 viewdata,我在其中渲染 usercontrol。有没有简单的解决方案?

4

1 回答 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 回答