2009-11-15 91 views
2

這不容易解釋,所以請裸露在我身邊。JQuery/MVC搜索問題

我繼承了一個作品,其中輸入屏幕顯示20個計算變量的摘要。例如。 Var A(250),Var B(79)。

單擊這些鏈接中的任何一個都會將用戶帶到一個帶有字段列表的視圖 - 所有20個控件都使用相同的控制器,但使用不同的GET,每個都使用不同的LINQ to SQL語句 - 爲視圖提供不同的數據每。

這個按預期工作。不過,我必須爲這個視圖添加一個JQuery搜索。通常情況下,我會吐出視圖,以便頂部有一個搜索框,底部有部分結果。

然後,我會使用jQuery調用了它原來的LINQ方法的另一GET方法並添加用戶輸入的搜索文本。

你還在我身邊嗎? :)

我的問題是 - 是否有一個更優雅的方式來做到這一點?

我的路,我會也許傳遞變量類型,有一個巨大的switch語句來調用正確的LINQ和正確的模型pback返回部分。

我在想,也許我應該通過JSON從jQuery回來,在控制器過濾它,並將其傳遞迴部分,但不知道如何去了解它,甚至如果可能的話。

我開到這裏的任何IDE和可以張貼代碼或priovide更多的信息,如果這將有助於。

感謝

+2

是的,我認爲有點代碼會幫助,你可以發佈? – 2011-08-08 18:33:04

回答

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