MVC выбирает только указанные идентификаторы из 2 контроллеров - PullRequest
0 голосов
/ 04 мая 2018

Я новичок в MVC и C # и у меня есть вопрос. У меня есть проект MVC и с помощью Entity Framework я создал свои модели из базы данных. Я создал контроллер свойств с подробным представлением. Я также настроил образцы контроллеров и представлений. Образец и таблица свойств связаны идентификатором свойства в базе данных. На странице сведений о свойстве я настроил кнопку, которая открывает индексную страницу образцов, но я хочу, чтобы она просто показывала образцы, связанные с выбранным свойством. Как выбрать только образцы с выбранным идентификатором свойства?

Ниже находится кнопка, которую я создал на странице сведений о недвижимости

<input type="button" value="Samples Summary" class="btn btn-primary" onclick="@("window.location.href='" + @Url.Action("Index", "Sample") + "'");" />

Вот мой образец контроллера для индекса

  public ActionResult Index(int? pageNumber)
        {
            var samples = db.Samples.Include(s => s.Property).
            var records = db.Samples.AsQueryable();


            return View(records.OrderBy(i => i.Id).ToPagedList(pageNumber ?? 1, 50));
        }

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

1 Ответ

0 голосов
/ 04 мая 2018

Передайте выбранное PropertyId в действие Index. Я предполагаю, что страница «Свойство» имеет текущий идентификатор в своей ViewModel.

<input type="button" onclick="@("window.location.href='" + @Url.Action("Index", "Sample", new { propertyId = Model.PropertyId }) + "'");" />

Затем используйте переданный PropertyId, чтобы отфильтровать образцы, используя предложение Where.

public ActionResult Index(int propertyId, int? pageNumber) {
     var samples = db.Samples
         .Include(s => s.Property)
         .Where(s => s.Property.Id == propertyId);

     // don't know why are you retrieving all samples again into "records"
     // in the code you have shown?

     return View(samples.OrderBy(i => i.Id).ToPagedList(pageNumber ?? 1, 50));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...