ASP.NET MVC Передача нескольких параметров из getJson в контроллер - PullRequest
2 голосов
/ 30 марта 2009

Я делаю вызов действия контроллера в javascript, используя метод 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 = "" });

1 Ответ

0 голосов
/ 31 марта 2009

Вы определенно на правильном пути, хотя мне нужно было бы увидеть ваш контроллер, чтобы точно знать. Это должно выглядеть примерно так:

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

Установите точку останова на вашем ActionResult, чтобы вы знали, что он вызывается. Если это не так, используйте Firefox и проверьте консоль ошибок на наличие синтаксических ошибок (код, который вы опубликовали, имеет некоторые из них).

UPDATE:

Что такое

$get("Premise").value? 

Чтобы получить значение ввода через jQuery, используйте:

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

Я рекомендую использовать плагин Firebug для Firefox. Таким образом, вы будете точно знать, в какой момент ваш JavaScript ломается. Скорее всего, вы обнаружите, что ваш оператор "var action =" неправильно добавляет значения полей формы на стороне клиента до того, как вызов $ .getJSON отправит запрос вашему контроллеру.

...