Как передать какой-либо параметр в пользовательский элемент управления MVC, которого нет в ViewData - PullRequest
5 голосов
/ 19 декабря 2008

Я хочу передать некоторые параметры в свой MVC UserControl, например ShowTitle (bool) и ViewData.Model.Row. Как я определяю свой usercontrol и передаю их ему? Tanx

Ответы [ 2 ]

6 голосов
/ 20 декабря 2008

Вы можете использовать RenderAction HtmlHelper, который можно найти в dll по фьючерсам MVC по адресу codeplex . На вашей главной странице ...

Вам нужен метод действия на контроллере с параметрами. Затем действие создает ViewData для usercontrol. Пользовательский контроль возвращается как представление с

return View("usercontrolname", model);

Файл .ascx затем использует модель только для пользовательского элемента управления. Полученный HTML-код отображается на вызывающей странице.

1 голос
/ 20 декабря 2008

Вы можете определить свой элемент управления как

public partial class MyUserControl : System.Web.Mvc.ViewUserControl<MyUserControlViewData> {
}

public class MyUserControlViewData {
    public IList<MyData> MyData { get; set; }
    public string SomethingElse { get; set; }
}

После этого вы можете создать экземпляр класса MyUserControlViewData в вашем контроллере, заполнить данными и передать их в представление. Это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...