4

getJson メソッドを使用して、javascript でコントローラー アクションを呼び出しています。コントローラーのアクション メソッドに 2 つのパラメーターを渡す必要がありますが、苦労しています。ルーティング テーブルを完全には理解していません。これを機能させるために使用する必要があるかどうかもわかりません。私がやろうとしていることの例を以下に示します。

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 = ""
 });
4

1 に答える 1

2

あなたは間違いなく正しい道を進んでいますが、確実に知るにはあなたのコントローラーを見る必要があります. 次のようにする必要があります。

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

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

アップデート:

とは

$get("Premise").value? 

jQuery 経由で入力の値を取得するには、次を使用します。

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

Firefox 用の Firebug プラグインを使用することをお勧めします。そうすれば、JavaScript がどの時点で壊れているかを正確に知ることができます。ほとんどの場合、$.getJSON 呼び出しがコントローラーにリクエストを送信する前に、「var action =" ステートメントがクライアント側でフォーム フィールドの値を適切に追加していないことがわかります。

于 2009-03-31T03:01:09.670 に答える