JQuery / MVC Поиск Проблема - PullRequest
       18

JQuery / MVC Поиск Проблема

2 голосов
/ 15 ноября 2009

Это нелегко объяснить, поэтому, пожалуйста, держись со мной.

Я унаследовал часть работы, где на экране ввода отображается сводная информация о 20 рассчитанных переменных. Например. Вар А (250), Вар Б (79).

Нажатие на любую из этих ссылок приводит пользователя к представлению со списком полей - все 20 используют один и тот же контроллер, но с разным GET для каждого с различным оператором LINQ to SQL - предоставляя представлению разные данные для каждого .

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

Затем я использовал бы JQuery для вызова другого метода get, в котором содержался оригинальный метод LINQ, и добавил бы текст поиска, введенный пользователем.

Ты все еще со мной? :)

Мой вопрос: есть ли более элегантный способ сделать это?

По-моему, мне, возможно, придется передать тип переменной и получить огромный оператор switch, чтобы вызвать правильный LINQ и вернуть правильный pback модели в партиал.

Я думал, может, мне следует передать JSON обратно из JQuery, отфильтровать его в контроллере и передать обратно частичному, но не уверен, как это сделать, или даже если это возможно.

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 14 июня 2012

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

public JsonResult MyAction(int myVar)
{
   var result;

   switch (myVar) 
   {
       case X:
          {
              result = from f in foo.bar select f; 
              break;             
          }
       ...
   }

   return Json(new { Result = result });
}
0 голосов
/ 26 августа 2011

Надеюсь, я правильно понимаю: вы хотите, чтобы окно поиска jQuery получало информацию из базы данных и загружало ее в представление, верно?

Вы можете легко использовать jQuery для вызова действий в вашем контроллере, а затем асинхронно загружать результаты на текущую страницу. Это довольно просто.

 $('#DIVYOUWANTTOLOADINTO').empty();
 $('#DIVYOUWANTTOLOADINTO').load('@Url.Action("CONTROLLERACTION","CONTROLLER")/' + JSVALUETOPASS, function() { //callback function });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...