asp.net mvc usercontrol viewdata

时间:2010-04-18 12:16:43

标签: asp.net-mvc user-controls viewdata

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

1 个答案:

答案 0 :(得分:2)

为该控件设置控制器,如

MenuController

使用操作方法

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()
{
    **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>" %>

要在View中使用它,你可以这样做:

<% Html.RenderAction("Menu", "Menu"); %>

HTH