asp.net-mvc-3 - httpget - method post javascript
Html.Action-Get versus Post (4)
Intente agregar el atributo AcceptVerbs
a su acción:
[AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)]
public ActionResult Create()
{
//Your code
}
Esto funcionará para las solicitudes GET y POST.
Hago esto muy a menudo:
<div id=''Product''>
@Html.Action("Create", "Product")
</div>
es conveniente porque puedo delegar la pintura de un formulario de creación de producto a otra acción de controlador para incrustar en lugares. Sin embargo, tengo problemas en que el método a veces (no me he dado cuenta en qué condiciones) llamará al [HttpPost] de la acción de mi controlador, que por supuesto falla.
¿Hay una manera de forzar a @ Html.Action () a llamar a la versión GET?
La forma en que funciona Html.Action
es que si la solicitud actual de la página es un método de publicación, buscará el método con el nombre HttpPost
.
Entonces, lo que está sucediendo es que estás POSTANDO la página actual y la acción también asume que todas las acciones que deben ejecutarse deben ser POST también.
No conozco ninguna forma de forzarlo a cambiar a un método diferente como ese.
Me acabo de encontrar este problema, que era difícil de identificar. Terminé usando Html.RenderPartial en su lugar, de esta manera:
<div id=''Product''>
@{Html.RenderPartial("_CreatePartial", new Product());}
</div>
También me metí en un problema similar y de hecho hay una solución. Simplemente verifique si la Solicitud se obtiene o POST en vista usando IsPost Property y VOILA ....
@if(!IsPost)
{
HTML.Action("ActionName")
}
Saludos a quien se metió en un problema similar ...