Я бы посмотрел, как вы просите JqGrid выполнить вызов веб-службы - потому что по умолчанию он ничего не знает о ядре маршрутизации MVC - и все это происходит на стороне клиента.
Выход на улицу из MVC на минуту, если у меня есть страница:
example.com / page1.aspx
И там есть относительная ссылка на другую страницу:
<a href="page2.aspx">Click here</a>
Браузер будет искать page2.aspx на том же уровне, что и page1.aspx, т.е.
example.com / page2.aspx
Если я переместить страницу 1 в новую папку:
example.com / NewFolder / page1.aspx
Браузер запросит
example.com / NewFolder / page2.aspx
когда пользователь нажимает на ссылку.
То же самое происходит с вашим вызовом GetGridData - они выполняются веб-браузером на вашем сервере на основе имеющейся у него информации.
Итак, если ваша страница отвечает:
example.com / Employee
И запрашивает относительный запрос:
GetGridData
Браузер отправит этот запрос на тот же уровень, на котором, по-видимому, находится Сотрудник:
example.com / GetGriddata
Что не получается, потому что механизм маршрутизации не может найти маршрут для этого запроса.
Вы должны посмотреть на динамическое создание URL-адреса для вызова GetGridData через систему маршрутизации, которая будет гарантировать, что он построен как:
url: "/Employee/GetGridData"
Окончательное редактирование для добавления
Забыл упомянуть, вы должны использовать UrlHelper Action методы для этого:
url: <%=Url.Action("GetGridData")%>
Это создаст путь к методу GetGridData на текущем контроллере. Если вам нужно получить доступ к другому контроллеру или передать некоторые значения, существуют перегрузки, которые помогут.