Pregunta

Estoy haciendo una llamada a una acción del controlador en javascript usando el método getJSON. Necesito pasar dos parámetros al método de acción en el controlador, pero estoy luchando para hacerlo. No entiendo plenamente las tablas de enrutamiento y no sabe si esto es lo que tengo que utilizar para conseguir este trabajo. Por favor, véase el siguiente ejemplo de lo que estoy tratando de hacer.

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

Esta es mi ruta, que no entiendo cómo hacer uso de ...

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

Solución

Usted está definitivamente en el camino correcto, a pesar de que iba a necesitar para ver su controlador de saber con seguridad. Tendría que ser algo como esto:

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

Establecer un punto de interrupción en su ActionResult para que sepa que está siendo llamado. Si no es así, utilizar Firefox y comprobar la consola de errores los errores de sintaxis (el código que envió tiene alguna).

ACTUALIZACIÓN:

¿Qué es

$get("Premise").value? 

Para obtener el valor de una entrada a través de jQuery, utilice:

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

Te recomiendo usar el plugin Firebug para Firefox. De esa manera usted sabrá exactamente en qué punto de su javascript está rompiendo. Lo más probable es que usted encontrará que su "acción var =" instrucción no está anexando adecuadamente los valores de campo de formulario en el lado del cliente antes de la llamada $ .getJSON envía una solicitud a su controlador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top