Два тела рендера на странице макета? - PullRequest
2 голосов
/ 10 января 2012

Я понимаю, что только одна RenderBody может существовать на странице макета MVC3, однако я хочу попытаться создать другую.Возможно, я смотрю на это неправильно ... В идеале я хочу добавить раздел с отзывами, который извлекается из БД, и отображать по 1 отзыву за раз, а также по 1 для каждого обновления страницы или новой страницы.Как лучше всего это сделать?

Контроллер

CategoryDBContext db = new CategoryDBContext();
public ActionResult Testimonial(int id)
    {
        TestimonialModel model = db.Testimonials.Find(id);
        return View(model);
    }

Модель

public class TestimonialModel
{
    public int ID { get; set; }
    public int CategoryID { get; set; }
    public string Data { get; set; }
}

public class CategoryDBContext : DbContext
{
    public DbSet<TestimonialModel> Testimonials { get; set; }
}

Представление находится в папке с именем CategoryData.

Ответы [ 2 ]

3 голосов
/ 10 января 2012

Вам необходимо использовать:

Макет:

@RenderSection("Testimonial", false) @*false means that this section is not required*@

и в вас Смотреть

@section Testimonial{
}
0 голосов
/ 11 января 2012

Я бы использовал @Html.Action()

Вот отличный пост в блоге об их использовании: http://kazimanzurrashid.com/posts/viewdata-or-viewbag-avoid-dependency-pollution-in-asp-dot-net-mvc-controller

Это позволит вам иметь TestimonialController, который может принимать значения,запросить данные и вернуть частичное представление.

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