doszedłem acros s sam ten problem i rozwiązany za pomocą atrybutu data-
i niektórych jQuery. Zaletą robienia tego w ten sposób jest to, że wciąż masz poprawny adres URL, gdy umieścisz kursor nad linkiem, mimo że robi on POST. Zauważ, że Html.BeginForm
zawiera domyślną akcję w przypadku, gdy użytkownik uderzy w klawisz Enter.
HTML (ASP.NET MVC3 Razor)
@using (Html.BeginForm("Quick", "Search"))
{
<input type="text" name="SearchText" />
<a href="@Url.Action("Quick", "Search")" data-form-method="post">Search</a>
<a href="@Url.Action("Advanced", "Search")" data-form-method="post">Advanced</a>
}
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();
});
});
dostał. dzięki, pręcie. – Rod