MaddoxSt Ответов: 1

Мой код JSON-это не проводки конкретного действия контроллера


У меня есть IndexPartial, который является частичным представлением, и он содержит таблицу, которая должна показывать таблицу simiple из класса модели клиента. У меня также есть еще одна главная страница, которая должна размещать IndexPartial View в Главном представлении при нажатии кнопки action, но это не так.

Что я уже пробовал:

My Main.cshtml code

<pre>@model PartialViews.Models.Customer

@{
    ViewBag.Title = "Main";
}

<body>

    <input type="button" value="Click" id="btnClick" />
    <div class="container">
        <h2>Customer's List</h2>
        <div id="dvCustomerDetails" style="width: 50%; height: 130px; display: none">
        </div>


        @*@{
            Html.RenderAction("Index", "Customers");
            <div>@Html.Partial("IndexPartial")</div>}*@
    </div>

    <div id="output">

    </div>


</body>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>


<script type="text/javascript">
    $(document).ready(function () {
        $('#btnClick').click(function () {

            $.ajax({
                url: '/Customers/IndexPartial',
                dataType: 'html',
                contentType: 'application/html',
                type: 'Post',
                success: function (data) {
                    $('#dvCustomerDetails').html(data);
                }
            });

            if (document.getElementById("tableCount")) {

                var rowCount = $('#tableCount tr').length;
                var totalRow = rowCount - 1;
                document.getElementById('output').innerHTML = totalRow;
            } else {
                alert("Table doesn't exists yet");
            }
        });
    });
</script>


Индексное действие моего CustomersController

[HttpPost]
public ActionResult IndexPartial()
{
    AdventureWorksLT2012Entities adv = new AdventureWorksLT2012Entities();

    return PartialView("IndexPartial", adv.Customers.ToList());

}



Мой IndexPartial.cshtml по

@using System.Runtime.InteropServices.ComTypes
@using PartialViews.Models
@model IList<PartialViews.Models.Customer>

<table class="table table-responsive">
    <tr>
        <td>
            Title
        </td>
        <td>
            Firstname
        </td>
        <td>
            Lastname
        </td>
        <td>
            Email
        </td>
        <td>
            Phone
        </td>
        <td>
            Date
        </td>
    </tr>
    
    @foreach (var item in Model)
    {
        <tr>
            @item.Title
        </tr><tr>
            @item.FirstName
        </tr><tr>
            @item.LastName
        </tr><tr>
            @item.EmailAddress
        </tr><tr>
            @item.ModifiedDate
        </tr>
    }
</table>

1 Ответов

Рейтинг:
0

F-ES Sitecore

Html.Partial просто вводит результат частичного представления (файл cshtml) в это место, он не вызывает действие на контроллере. Если вам нужно, чтобы он вызывал ваш контроллер, используйте Html.Действие

https://www.c-sharpcorner.com/article/html-action-and-html-renderaction-in-Asp-Net-mvc/[^]


MaddoxSt

Я уже сделал это но я хочу использовать ajax для вызова этого представления так что позже на моей главной странице Я могу иметь около 10 частичных представлений которые не повлияют на загрузку главной страницы так как моя главная цель состоит в том чтобы загрузить все частичные представления отдельно но внутри одной страницы используя Ajax так что каждый частичный вид может загружаться в свое время но на одной странице

Graeme_Grant

Отладьте, чтобы вы действительно могли видеть, что создается. Экспорт JSON-это другой вызов метода.