estoy teniendo algunas dificultades con Ajax.BeginFormasp.net mvc Ajax.BeginForm
tengo algo como esto en una vista
<% using (Ajax.BeginForm("ActionName", null , null, new { id = "FormName" }))
{%>
<input type="hidden" value = '<%= Html.Encode(Model.id) %>' name="id"/>
<textarea id="message" name=message rows="4" style="width: 90%">
</textarea>
<% }%}
Y el método de acción es algo como esto
[AcceptVerbs(HttpVerbs.Post)]
[Authorize]
public ActionResult ActionName(int id, string message)
{
....
}
Estoy tratando de pasar el "id" y el "mensaje" al método de acción. Estoy pasando 'null' por routeValues pero no sé qué pasar. Idealmente, estaba tratando de encontrar una sobrecarga que no requiriera valores de ruta, pero tomé actionName y htmlattributes (para el nombre del formulario) pero no pude encontrar uno. No deseo agregar 'mensaje' al modelo de vista y sí necesito el Nombre de formulario allí para operaciones de jquery. ¿Cuál es la mejor manera de evitar este problema?
Ah, se me olvidó mencionar, esta es la forma en que publico la forma
$.post($("#FormName").attr('action'), $("#FormName").serialize(),
function(result) {
$("#correspondingDiv").html(result);
}
);
Cuando pruebo esta solución, se llama al método de acción del controlador pero aún tiene los valores de ruta iniciales definidos en BeginForm y no los que se rellenaron en el formulario. Alguna idea ? –
No es posible utilizar el Ajax.BeginForm para rellenar los valores de su formulario, porque se llama al auxiliar BeginForm cuando se procesa la página. Puede obtener los valores de los campos de formulario utilizando Request.Form. –