2016-02-19 2 views
0

В представлении MVC я хочу создать поиск, чтобы получить продукт по id, Но не один поиск, который я хочу найти более чем один поиск, который вызывает у клиента больше, чем продукт `MVC Создание нескольких поисков для получения продукта по идентификатору

public ActionResult Search(int pid ,int pid2 ,int pid3) 
     { 
      var products = (from d in db.Products 
          where d.ProductId == pid || d.ProductId == pid2 || d.ProductId == pid2 
         select d).ToList(); 



      return View(products); 
     }` 

view show what i mean

Когда я пытаюсь сделать это с помощью этого кода, все результаты поиска будет такой же результат

+0

Извините! Ваш вопрос до сих пор не ясен для меня. Что ты пытаешься сделать ? – Shyju

+0

Можете ли вы опубликовать точное исключение/ошибку, которую вы получаете? – Marko

+0

Посмотрите на фотографию под кодом .. все окна поиска показывают одинаковый результат для одного поиска [эта фотография, чтобы показать, что я имею в виду https://41.media.tumblr.com/bf060a28b9d07ec38aa8096692fb18be/tumblr_o2t0p8KYBd1swp9s3o1_540.jpg] –

ответ

0

Это кресло закодированы так что он может занять немного ловко на самом деле работает, но вы хотите что-то например:

public ActionResult Search(IEnumerable<int> productIds) 
{ 
    var products = (from d in db.Products 
      where productIds.Contains(d.ProductId); 
      select d).ToList(); 

      return View(products); 
} 

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ также, вероятно, релевантный здесь.

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

Смежные вопросы