Tengo una vista que se usa para editar cosas, por ejemplo, Pedidos. Los pedidos tienen líneas de pedido que se pueden agregar de forma arbitraria. Entonces, una vista principal y vistas parciales anidadas.Ajax.BeginForm dentro de Html.BeginForm
Cada parcial debe tener un formulario ajax para ajustar cantidades de cada elemento de línea o lo que sea.
Por lo tanto:
Html.BeginForm()
{%>
Ship to: blah blah blah
<%
Ajax.BeginForm("EditLineItem", "Order", new { OrderLineItemID = Model.ObjectID }, itemAjaxOptions))
{
Item qty blah blah blah
<--! (ajax form's submit button, etc.)-->
}
%>
<--! (ajax form's submit button, etc.)-->
<%
}
Tengo un controlador que tiene este aspecto:
[ActionName("Edit")]
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult Edit(int orderID)
{
blah, blah
}
[ActionName("EditLineItem")]
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult EditLineItem(Guid orderLineItemID)
{
blah, blah
}
Mi problema es que cuando presente la forma Ajax, consigo el método Edit en lugar de los métodos EditLineItem . Ambas rutas están mapeadas. ¿Hay algo así como "no se puede enviar un formulario Ajax dentro de un formulario Html" que yo no sepa?