2009-11-15 3 views
2

Это непросто объяснить, поэтому, пожалуйста, со мной.JQuery/MVC Search Issue

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

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

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

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

Вы по-прежнему со мной? :)

My qestion is - Есть ли более элегантный способ сделать это?

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

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

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

Благодаря

+2

Да, я думаю, что немного кода поможет, можете ли вы опубликовать? –

ответ

0

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

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

$('#DIVYOUWANTTOLOADINTO').empty(); 
$('#DIVYOUWANTTOLOADINTO').load('@Url.Action("CONTROLLERACTION","CONTROLLER")/' + JSVALUETOPASS, function() { //callback function }); 
0

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

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 }); 
}