Как определить модель для использования в сетке - PullRequest
0 голосов
/ 09 января 2020

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

Что я пробовал до сих пор:

Модель:

public class ResultsViewModel
{
    public List<YSM_sp_select_payment_history_Result> PaymentHistory { get; set; }
    public List<YSM_sp_select_comment_history_Result> CommentHistory { get; set; }
}

Контроллер:

    var model = new ResultsViewModel();

    model.PaymentHistory = db.YSM_sp_select_payment_history(vm.LoanNumber).ToList();
    model.CommentHistory = db.YSM_sp_select_comment_history(vm.LoanNumber).ToList();

    return View("Search", model);

Razor View:

@model IEnumerable<YSMadmin.Models.ResultsViewModel>
...
    @(Html
          .Grid(Model)
          .Build(columns =>
          {
              columns.Add(model => model.PaymentHistory.TransactionCode).Titled("Transaction Code");
              columns.Add(model => model.PaymentHistory.TransactionType).Titled("Transaction Type");
              columns.Add(model => model.PaymentHistory.TransactionDate).Titled("Transaction Date").Formatted("{0:d}");
              columns.Add(model => model.PaymentHistory.EffectiveDate).Titled("Effective Date").Formatted("{0:d}");
              columns.Add(model => model.PaymentHistory.TransactionAmount).Titled("Transaction Amount");
          })
          .Empty("No data found")
          .Pageable()
          )

Я получаю ошибку при определении столбцов в сетке. Я попытался передать только один из результатов в сетку, и он работал правильно. Но попытка определить модель правильно - вот что я застрял. Только одна сетка для справки.

1 Ответ

1 голос
/ 09 января 2020

Код действия вашего контроллера возвращает один объект ResultsViewModel.

var model = new ResultsViewModel();
/* Other controller action code goes here */
return View("Search", model);

Но у вас есть бритвенное представление, принимающее коллекцию ResultsViewModel. Так что, вероятно, именно это может вызвать проблемы с доступом к свойствам модели. Поэтому, пожалуйста, попробуйте обновить вид бритвы, как показано ниже:

@model YSMadmin.Models.ResultsViewModel
...
    @(Html
          .Grid(Model.PaymentHistory)
          .Build(columns =>
          {
              columns.Add(model => model.TransactionCode).Titled("Transaction Code");
              columns.Add(model => model.TransactionType).Titled("Transaction Type");
              columns.Add(model => model.TransactionDate).Titled("Transaction Date").Formatted("{0:d}");
              columns.Add(model => model.EffectiveDate).Titled("Effective Date").Formatted("{0:d}");
              columns.Add(model => model.TransactionAmount).Titled("Transaction Amount");
          })
          .Empty("No data found")
          .Pageable()
          )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...