MVC Ajax.ActionLink doesn't find POST method

前端 未结 4 1287
终归单人心
终归单人心 2021-02-05 16:17

I have a POST method declared in my controller:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateComments(int id, string comments)
{
    // ... 
}
         


        
相关标签:
4条回答
  • 2021-02-05 16:36

    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'); }" 
    
    0 讨论(0)
  • 2021-02-05 16:36

    FormCollection has a default binder associated with it which always initializes the collection and you should never get null. It is more likely that you have an empty collection when using Ajax.ActionLink in contrast to when using a form submit button. This is because the ActionLink method doesn't POST any form values when it performs the AJAX request. This post is the unswer to you question

    0 讨论(0)
  • 2021-02-05 16:36

    try including

    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
    
    0 讨论(0)
  • 2021-02-05 16:51

    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!

    0 讨论(0)
提交回复
热议问题