Фильтровать данные на другой странице в ASP.NET MVC - PullRequest
1 голос
/ 06 апреля 2019

У меня есть одна таблица для контрактов, и у меня есть ссылка рядом с каждым контрактом, когда я нажимаю на ссылку, которую они переносят на другую страницу, которая является месяцем контракта, но я хочу отображать данные только для того контракта, который я нажимаю невсе данные.

Вид контакта:

@using (Html.BeginForm())
{

        @Html.ActionLink("Create", "Create")

            <table class="table table-bordered f" cellspacing="0">

                <thead>
                    <tr>
                    </tr>
                </thead>

                @foreach (var item in Model)
                {

                    <tbody>
                        <tr>


                            <td>
                                @Html.DisplayFor(modelItem => item.Contract_Num)
                            </td>

                            <td>
                                @Html.DisplayFor(modelItem => item.Contract_Start)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.Contract_End)
                            </td>

                            <td>
                                @Html.DisplayFor(modelItem => item.Status)
                            </td>

                            <td>
                                @Html.DisplayFor(modelItem => item.typeOfRent.TypeOfRent_Name)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.AmountOfRent)
                            </td>

                            <td>
                                @Html.DisplayFor(modelItem => item.Total)
                            </td>

                            <td>
                                @Html.DisplayFor(modelItem => item.customers.Customer_Name)
                            </td>

                            <td>
                                @Html.DisplayFor(modelItem => item.sections.Section_Name)
                            </td>


                            <td>
                                @Html.ActionLink("Contract Month", "Index", "ContractMonth")
                            </td>


                    </tbody>
                }
            </table>

вид месяца контракта:

   foreach (var item in Model)
                {

                        <tr>

                            <td>
                                @Html.DisplayFor(modelItem => item.contracts.Contract_Num)
                            </td>

                            <td>
                                @Html.DisplayFor(modelItem => item.Monthe)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => item.contracts.AmountOfRent)
                            </td>

                            <td>
                                @Html.DisplayFor(modelItem => item.Receipt)
                            </td>

                            <td>
                                @{
                    var Balance = item.contracts.AmountOfRent - item.Receipt;
                                }

                                @Balance
                            </td>

Контроллер месяца контракта:

  public ActionResult Index()
  {
   var ContractMonth =_context.ContractMonth.Include(s => s.contracts).ToList();

      return View(ContractMonth);

    }

Ответы [ 2 ]

3 голосов
/ 06 апреля 2019

Прежде всего измените ваш Index метод действия внутри ContractMonthController, чтобы получить конкретные записи по ContractId

public ActionResult Index(int id)
{
    var contractMonth = _context.ContractMonth.Where(c => c.ContractsId == id).Include(s => s.contracts).ToList();

    return View(contractMonth);    
}

А затем измените действие, чтобы принять id в качестве параметра строки запроса,

<td>
    @Html.ActionLink("Contract Month", "Index", "ContractMonth", new { id = item.Contracts_Id }, null)
</td>
3 голосов
/ 06 апреля 2019

Вы можете добавить первичный ключ (например, Id) каждого contract к url каждой ссылки в виде строки запроса. Затем при получении данных contract month вы можете использовать параметр pk для фильтрации данных, например (в contract month controller):

  public ActionResult Index(int contractId)
  {
      var ContractMonth =_context.ContractMonth.Where(c => c.ContractId == contractId).Include(s => s.contracts).ToList();
      return View(ContractMonth);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...