Вы определенно на правильном пути, хотя мне нужно было бы увидеть ваш контроллер, чтобы точно знать. Это должно выглядеть примерно так:
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 отправит запрос вашему контроллеру.