What if you moved your search function into the MainController and then
return View::make('desktop.contact.main_contacts")->with('data', $data);
Then you could make an AJAX request to
Route::get('/search/{terms}', ['uses' => 'MainController@search');
and return that whole page as a response
Then just do this as a callback to your AJAX :
function(resp) {
$('#contacts').html(resp);
}
where $('#contacts') refers to a div#contacts in your 'desktop.contacts.index'.