次のように我々は非常に簡単にJavascriptを/ jQueryのを使用して、コントローラのメソッドを呼び出すことができます。
には、以下の仮定は、いくつかのクラスのオブジェクトの配列を返すと呼ばれるコントローラのメソッドです。クラスを聞かせすることは「A」
public JsonResult SubMenu_Click(string param1, string param2)
{
A[] arr = null;
try
{
Processing...
Get Result and fill arr.
}
catch { }
return Json(arr , JsonRequestBehavior.AllowGet);
}
後複合型(クラス)がある
public class A
{
public string property1 {get ; set ;}
public string property2 {get ; set ;}
}
今
それはjQueryのことで、コントローラのメソッドの上に呼び出すこと回したです。以下は、コントローラメソッドを呼び出すJquery関数です。上記のjQueryの関数「callControllerMethod」は、
function callControllerMethod(value1 , value2) {
var strMethodUrl = '@Url.Action("SubMenu_Click", "Home")?param1=value1 ¶m2=value2'
$.getJSON(strMethodUrl, receieveResponse);
}
function receieveResponse(response) {
if (response != null) {
for (var i = 0; i < response.length; i++) {
alert(response[i].property1);
}
}
}
我々は、コントローラのメソッドのURLを開発し、変数で指定することを置く「strMehodUrl」とjQueryのAPIのgetJSONメソッドを呼び出します。
receieveResponseは、コントローラメソッドの応答または戻り値を受け取るコールバック関数です。
ここで我々はJavaScript関数にC#クラスのオブジェクトを直接
を利用することができないので、JSONを使用したので、次のように、我々はJSONオブジェクトにコントローラメソッドで結果(ARR)に変換:
Json(arr、JsonRequestBehavior.AllowGet);
を返し、そのJsonオブジェクトを返します。
Javascript/JQueryのコールバック関数では、結果として得られるJSONオブジェクトを使用して、それに応じてUI上に応答データを表示することができます。よりdetaillについては
click here
は、だから私はこれを実装しました:。 $( '#のrefreshGrid')負荷( '?/クライアント/のgetattachments ID =' +クライアントID); 私のクライアントコントローラは、次のようになります。 公共のActionResultののgetattachments(int型のID) {// いくつかのロジック... リターンPartialView( "〜/ビュー/クライアント/ ClientAttachmentGridView.ascx"、ファイル); } alert($( '#refreshGrid'))は私にオブジェクトを与え、アラート(clientID)が私に期待するものを与えます。コントローラがヒットしない(そうでなければ、フィドラーからいくつかのWebサービスコールが表示される)。迷惑なことは、エラーメッセージが表示されないことです。 – RailRhoad
うーん、私はそれを取り戻す。 パラメータ辞書には、 'Commercial.WendingPlatform'の 'System.Web.Mvc.ActionResult GetAttachments(Int32)'メソッドのnullable型 'System.Int32'のパラメータ 'id'のnullエントリが含まれています。 .Controllers.ClientController '。パラメータをオプションにするには、その型は参照型またはNullable型のいずれかでなければなりません。
パラメータ名:パラメータ – RailRhoad
素晴らしい!代わりにClient/GetAttachments/clientIDを作成する必要がありました。 1秒間のURLルーティングを忘れてしまった。みんな、ありがとう! – RailRhoad