mvc method httpget example asp.net-mvc-3 razor controller-action

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 ...