Заполнить данные списка из частичного представления - PullRequest
1 голос
/ 24 октября 2011

Я новичок в ASP.NET MVC, и у меня есть частичное представление со списком, которое мне нужно для динамического заполнения.

Насколько я понимаю, я могу поместить данные списка в ViewBag дляпредставление, и оно будет доступно из моего частичного представления.

Однако я хочу иметь возможность использовать частичное представление с нескольких разных страниц.Должны ли все страницы, использующие частичное представление, заполнять ViewBag данными списка?Есть ли способ инкапсулировать это в моем частичном представлении?

Ответы [ 3 ]

1 голос
/ 24 октября 2011

Посмотрите на этот вопрос: Лучшие практики ViewModel .Возможно, вам следует создать базовую модель представления, содержащую данные списка, и (при необходимости) наследовать от нее другие модели представления.

Например:

    class ViewModelWithFooList
    {
        public List<Foo> FooList
        {
            get { return new List<Foo>() { new Foo("one"), new Foo("two"), new Foo("three") }; }
        }
    }

Вы можете наследовать другие модели представления отViewModelWithFooList, если вам нужно.

В контроллере:

    public ActionResult GetList()
    {
        return View(new ViewModelWithFooList());
    }

И в ваших представлениях:

    @Html.RenderPartial("FooList", Model.FooList);

Представления и частичное представление "FooList" должны быть строго типизированы.

1 голос
/ 25 октября 2011

Для этого вы можете использовать дочернее действие.

Выполнить действие в контроллере, который просто устанавливает ViewBag и возвращает частичное представление поля со списком.

например,

 [ChildActionOnly]
 public ActionResult MyDropDown()
 {
     ViewBag.DropDown = blah;
     return PartialView();
 }

Затем любое представление, которому необходимо использовать этот раскрывающийся список, будет отображаться как дочернее действие.

например,

@{ Html.RenderAction("MyDropDown", "MyController"); }
1 голос
/ 24 октября 2011

Вы должны передать данные в ваш частичный просмотр, используя

    @Html.Partial("", yourData)

, и получить доступ к ним в вашем частичном просмотре, используя

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