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'); }"