asp.net mvc 用户控件 视图数据

发布于 2024-08-30 00:45:56 字数 103 浏览 4 评论 0原文

我有用户控件,我在多个视图上渲染它。我想在用户控件中显示视图数据,但视图数据必须填充在控制器方法中,因此我需要在渲染用户控件的每个视图的每个控制器方法上填充视图数据。 有什么简单的解决方案吗?

i have user control, which i render on several views. i want to show viewdata in the usercontrol, but viewdata must be filled in controller method, so i need to fill viewdata on each controller method of each view, where i render usercontrol.
is there any simple solutions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

篱下浅笙歌 2024-09-06 00:45:56

为该控件提供一个控制器,例如

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 更有意义

Menu()
{
    **do your work to get the data here and preferrably strong type it**
    Menu myMenuObject = Repository.GetMenu(...);
    return PartialView(myMenuObject);
}

Your Menu.ascx start 看起来像这样

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<mynamespace.Menu>" %>

要在视图中使用它,您可以这样做:

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

HTH

Have a controller for that control like

MenuController

with an action method

RenderMenu()
{
    **do your work to get the data here and preferrably strong type it**
    return PartialView("NameOfYourAscxFile", yourObject);
}

If you name your control RenderMenu.ascx, you can just do

RenderMenu()
{
    **do your work to get the data here and preferrably strong type it**
    return PartialView(yourObject);
}

Or, maybe it would make more sense to name it Menu.ascx and have a method Menu like this

Menu()
{
    **do your work to get the data here and preferrably strong type it**
    Menu myMenuObject = Repository.GetMenu(...);
    return PartialView(myMenuObject);
}

Your Menu.ascx start would look like this

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<mynamespace.Menu>" %>

To use it in a View you do it like this:

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

HTH

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文