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