JqGridにWebサービス呼び出しを行うように要求している方法を見てみましょう。デフォルトではMVCのルーティングエンジンについて何も知らないためです。これはすべてクライアント側で発生します。
ページがある場合は、MVCの外に1分間ステップします。
example.com/page1.aspx
そして、そこに別のページへの相対リンクがあります。
<a href="page2.aspx">Click here</a>
ブラウザは、page1.aspxと同じレベルでpage2.aspxを探します。
example.com/page2.aspx
page1を新しいフォルダに移動した場合:
example.com/NewFolder/page1.aspx
ブラウザは要求します
example.com/NewFolder/page2.aspx
ユーザーがリンクをクリックしたとき。
GetGridData呼び出しにも同じことが起こります。これらは、サーバーが利用できる情報に基づいて、Webブラウザーによってサーバーに対して行われます。
したがって、ページが次のように応答する場合:
example.com/Employee
そして、次の相対的な要求を求めます。
GetGridData
ブラウザは、従業員がいるように見えるのと同じレベルにそのリクエストを送信します。
example.com/GetGriddata
ルーティングエンジンがそのリクエストのルートを見つけることができないため、これは失敗します。
GetGridData呼び出しのURLをルーティングシステムを介して動的に生成することを検討する必要があります。これにより、次のように構築されていることが保証されます。
url: "/Employee/GetGridData"
追加する最終編集
言及するのを忘れた、あなたはおそらくこれのためにUrlHelperアクションメソッドを使うべきです:
url: <%=Url.Action("GetGridData")%>
This will generate a path to the GetGridData method on the current controller. If you need to access a different controller, or pass some values, there are overloads to help.