I have a POST method declared in my controller:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateComments(int id, string comments)
{
// ...
}
and an ActionLink in my view:
<%= Ajax.ActionLink("update", "UpdateComments",
new { id = Model.Id, comments = "test" },
new AjaxOptions {
HttpMethod="POST",
OnFailure="alert('fail');",
OnSuccess = "alert('success');"
})%>
I get a "not found" error when it tries to route this request.
If I remove the POST restriction from the UpdateComments method in the controller, it works fine.
What am I missing?
It seems it didn't like the way I was declaring my OnFailure
and OnSuccess
callbacks. I guess it couldn't parse my AjaxOptions
object so was ignoring the HttpMethod="POST"
setting.
I got it working by changing it to:
OnFailure="function() { alert('fail'); }",
OnSuccess="function() { alert('success'); }"
I am learning ASP.MVC at this moment and I had that issue with my Ajax.ActionLink, I got a GET method and not a POST method as it should had been. Then I realize that I didn't add the scripts library reference:
<script src=”/Scripts/MicrosoftAjax.js” type=”text/javascript”></script>
<script src=”/Scripts/MicrosoftMvcAjax.js” type=”text/javascript”></script>
After I adding the script it worked fine!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With