Parámetros múltiples con POST y MVC
-
05-07-2019 - |
Pregunta
Ok. Así que tengo dos elementos en una página que no están ubicados en un solo formulario. Necesito que estos se publiquen de nuevo en mi controlador a través del método JQuery.Ajax (). Ahora el problema que tengo es que mientras mis parámetros se publican correctamente, solo lo hacen si los configuro como cadenas e incluyen el nombre del parámetro en el valor. Entonces:
Public ActionResult Method(String Age1, String Age2)
{
Age1=23; Age2=43
}
me sale
Public ActionResult Method(String Age1, String Age2)
{
Age1="Age1=23"; Age2="Age2=43"
}
Lo que es irritante. ¿Hay alguna forma de asegurarse de que MVC mapeará los parámetros correctamente y solo tomará los valores correctos? Realmente quiero que haga:
Public ActionResult Method(Int32 Age1, Int32 Age2)
{
Age1="Age1=23"; Age2="Age2=43"
}
La llamada jQuery:
$.ajax{(
//other stuff
data: { Age1: $('.id').val(), Age2: $('.id2').val() };
)};
¡Opps, fue porque en mi código real estaba usando Serialize! DUH!
Solución
Honestamente, no veo nada malo en lo que estás haciendo, siempre que estés pasando los números 23 y 43 a través de $ .ajax, y no " Edad1 = 23 " y " Edad2 = 43 " ;. Si lo fueras, int no funcionaría ya que el marco no puede convertir esas cadenas en enteros.
Podría valer la pena cambiar tu llamada ajax () a esto, solo para ver qué sucede.
data: {
Age1: parseInt($('.id').val()),
Age2: parseInt($('.id2').val())
}