post action for url.action?

前端 未结 3 1189
旧时难觅i
旧时难觅i 2020-12-09 17:20

Here is a line of code in my Controller class:

return JavaScript(String.Format(\"window.top.location.href=\'{0}\';\", Url.Action(\"MyAction\", \"MyController         


        
3条回答
  •  一向
    一向 (楼主)
    2020-12-09 17:36

    I came across the same problem myself and solved it using a data- attribute and some jQuery. The benefit of doing it this way is that you still get the correct URL when you hover over the link, even though it does a POST. Note that the Html.BeginForm contains the default action in case the user hits the enter key.

    HTML (ASP.NET MVC3 Razor)

    @using (Html.BeginForm("Quick", "Search"))
    {
        
        Search
        Advanced
    }
    

    jQuery

    $("a[data-form-method='post']").click(function (event) {
        event.preventDefault();
        var element = $(this);
        var action = element.attr("href");
        element.closest("form").each(function () {
            var form = $(this);
            form.attr("action", action);
            form.submit();
        });
    });
    

提交回复
热议问题