Можно ли отобразить несколько частичных представлений один под строкой в ​​одном _Layout.cs html? - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть ситуация, когда я должен sh отрендерить 2 частичных представления в одном макете. html один под другим. Каждый частичный вид принадлежит отдельному контроллеру. Я обработал это, используя 2 различных подхода, первый, который я хотел, чтобы это работало, не удался. То, что я хотел, это иметь частичное представление контроллера категорий (см. Ниже div-id в layout.cs html), а затем под ним отображать частичное представление категории 2.

скажем, это мой _Layout. cs html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - ABCD</title>

    <link href="~/Content/bootstrap.min.css" rel="stylesheet" />
    <link href="~/Content/bootstrap-theme.min.css" rel="stylesheet" />
</head>
<body>
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">

                @Html.ActionLink("TitleName", "Index", "Files", new { area = "" }, new { @class = "navbar-brand" })
            </div>
        </div>
    </div>

    <div class="row panel">

      //My first view should be displayed here
        <div id="categoris1" class="col-lg-3">
            @Html.Action("DispatchedProducts", "DispatchedProducts")
        </div>

      //Second view should be displayed here just below first one
       <div id="categoris2" class="col-lg-3">
            @Html.Action("DisplayUnDispatchedProducts", "UnDispatchedProducts")
        </div>

        <div class="col-lg-8">
            @RenderBody()
        </div>
        <hr />
        <footer>
            <p>&copy; @DateTime.Now.Year - My MVC Application</p>
        </footer>
    </div>
</body>
</html>

Это приводит к отображению представления контроллера div категории1 только тогда, когда я запускаю приложение (но не частичное представление категории2), а частичное представление категории категории2 отображается по другому URL-адресу (когда я пишу путь к контроллер и представление в браузере), и я хотел, чтобы он отображался на той же странице чуть ниже под категорией.

Мой следующий подход, который сработал, состоял в том, что я просто сохранил этот раздел категории (строка ниже) в частичном представлении 'DispatchedProducts 'внизу DisplayDispatchedProducts.cshtml и отображалось именно то, что я ожидал.

<div id="categoris2" class="col-lg-3">
   @Html.Action("DisplayUnDispatchedProducts", "UnDispatchedProducts")
 </div>

Complete DisplayDispatchedProducts.cs html примерно так:

@model  IList<ABC.Models.Product>
@{
    ViewBag.Title = "First view";
}

<div class="col-md-10">
    <h2>Dispatched Items</h2>

    <div class="form-group">
        <label class="col-md-2 control-label">Dispatched Items</label>
        <table>
            @foreach (var item in Model)
            {
                <tc>
                    <td>
                        <img src=@item.ProdUrl height="100" width="100" />
                    </td>
                </tc>
            }
            <hr />
        </table>
    </div>
</div>

и контроллер DisplayDispatchedProducts имеет такой метод (аналогично другой контроллер и частичное представление с теми же типами возврата, но разными запросами):

 public PartialViewResult DisplayDispatchedProducts()
        {
            productDispatched = uow.ProductsRepository.GetProductWithOrder().ToList();
            return PartialView(productDispatched);
        }

Но я хочу перейти с первого подхода к вызову обоих частичных представлений в файле _Layout.cshtml, как я упоминал выше. Который я ожидал отобразить оба в ряд ниже друг друга. Возможно ли это случиться? Как заставить это работать?

Пожалуйста, дайте мне знать, если нужна какая-либо другая информация

1 Ответ

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

Вы пытались вызвать Html .RenderPartial или Html .RenderAction?

  • RenderPartial (String частичноеViewName)
  • RenderAction (String actionName, String controllerName, Object routeValue)

Существуют другие переопределения для каждого из этих методов в зависимости от используемой версии платформы.

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