asp.net mvc usercontrol viewdata - PullRequest
       19

asp.net mvc usercontrol viewdata

0 голосов
/ 18 апреля 2010

У меня есть пользовательский контроль, который я рендеринг на несколько просмотров. Я хочу показать viewdata в usercontrol, но viewdata должен быть заполнен в методе контроллера, поэтому мне нужно заполнить viewdata для каждого метода контроллера каждого представления, где я отображаю usercontrol. Есть ли простые решения?

1 Ответ

2 голосов
/ 18 апреля 2010

Есть контроллер для этого элемента управления, как

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);
}

Ваш запуск Menu.ascx будет выглядеть так

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

Чтобы использовать его в View, вы делаете это так:

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

НТН

...