2009-03-30 39 views
2

javascriptでgetJsonメソッドを使用してコントローラアクションを呼び出す。コントローラーのアクションメソッドに2つのパラメーターを渡す必要がありますが、私はそうするのが苦労しています。私はルーティングテーブルを完全に理解していませんが、これが動作するために必要なものかどうかはわかりません。私がしようとしていることの下の例を見てください。ASP.NET MVC getJsonからコントローラに複数のパラメータを渡す

var action = "<%=Url.Content('~/Postcode/GetAddressResults/')%>" + $get("Premise").value + "/" + $get("SearchPostcode").value 
     $.getJSON(action, null, function(data) { 
     $("#AddressDropDown").fillSelect(data); 
    }); 

これは私が私があなたのコントローラを参照してくださいする必要がありますけれどもあなたは、正しい道に間違いですか

routes.MapRoute(
       "postcode", 
       "Postcode/GetAddressResults/{premise}/{postcode}", 
       new { controller = "Motor", action = "GetAddressResults", premise = "", postcode = "" }); 

答えて

0

...を利用するには理解していない私のルートであります確かに知っている。

public ActionResult GetAddressResults(string premise, string postcode) 
{ 
    //Do something. 
    return Json(AddressService.GetResultsOfSomeKind(premise, postcode); 
} 

あなたのActionResultにブレークポイントを設定して、呼び出されていることがわかるようにします。そうでない場合は、Firefoxを使用してエラーコンソールでエラーをチェックします(コードにはいくつかのコードがあります)。

UPDATE:

jQueryの、使用を介して入力の値を取得するには

$get("Premise").value? 

何ですか:

$("#fieldid").val(); 

私はFirefox用のFirebugのプラグインを使用することをお勧めします。そうすれば、javascriptがどんなところで壊れているのかを正確に知ることができます。ほとんどの場合、$ .getJSON呼び出しがコントローラに要求を送る前に、 "var action ="文がクライアント側でフォームフィールド値を正しく付加していないことがわかります。

関連する問題