开发者

JQuery/MVC Search Issue

开发者 https://www.devze.com 2022-12-11 06:33 出处:网络
I have inherited a piece of work where the entry screen shows a summary of 20 calculated variables.E.g. Var A (250), Var B (79).

I have inherited a piece of work where the entry screen shows a summary of 20 calculated variables. E.g. Var A (250), Var B (79).

Clicking on any of these links takes the user to a view with a list of fields - all 20 use the same controller but with a different GET for each with a different LINQ to SQL st开发者_运维百科atement - providing the view with different data for each.

This works as expected. However, I have to add a JQuery search for this view. Normally I would spit the view so that the top had a search box and the bottom had a partial with the results.

I would then use JQuery to call another get method that had the original LINQ method in it and add the search text the user entered.

Are you still with me? :)

Is there a more elegant way of doing this?

My way, I would have to maybe pass in the variable type and have a huge switch statement to call the correct LINQ and return the correct model pback to the partial.

I was thinking, maybe I should pass JSON back from the JQuery, filter it in the controller and pass it back to the partial but not sure how to go about it or even if it's possible.


I hope I understand this correctly: you want a jQuery search box to get information from the database and load it into the view, right?

You can easily use jQuery to call actions in your controller, and then load the results onto the current page asynchronously. Its pretty straightforward.

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


Without seeing any code, I will suggest removing partial views from the equation and just getting a controller to return your result based on the variable you are sending in. Once you have that working you can deal with the aesthetics.

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

精彩评论

暂无评论...
验证码 换一张
取 消