я есть ActionLink на мой взглядASP.NET MVC трудности ActionLink
<%= Html.ActionLink("action","controller") %>
действие имеет [AcceptVerbs(HttpVerbs.Post)]
atttribute и lactionlink не работает.
как заставить его работать с помощью "POST" ??
я есть ActionLink на мой взглядASP.NET MVC трудности ActionLink
<%= Html.ActionLink("action","controller") %>
действие имеет [AcceptVerbs(HttpVerbs.Post)]
atttribute и lactionlink не работает.
как заставить его работать с помощью "POST" ??
Чтобы отправить сообщение в действии, я использую эту функцию JavaScript:
function postToUrl(path, params, method)
{
method = method || "post"; // Set method to post by default, if not specified.
// The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
for (var key in params) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
document.body.appendChild(form); // Not entirely sure if this is necessary
form.submit();
}
Это создает HTML-форму, так что вам не нужно создавать его просмотра кода. таким образом вы можете использовать:
<button onclick="postToUrl('/Controller/Action');">Link</button>
К сожалению мат, не может быть сделано: посмотрите на принятый ответ здесь Does Html.ActionLink() post the form data? и прочитать немного о теге здесь http://www.w3schools.com/TAGS/tag_a.asp
ActionLink просто создает якорь тег
<a href="url">link text</a>
Это по сути является GET-глаголом. Чтобы выполнить POST, вы должны обернуть actionlink внутри тега формы, и вы можете переопределить функцию click с помощью некоторого jQuery.
<% using (Html.BeginForm("action","controller"))
{ %>
<%= Html.ActionLink("Link Text", "action","controller") %>
<% } %>
<script>
$(document).ready(function() {
$("a").click(function() {
$(this).parents('form').submit();
return false;
});
});
</script>
+1, но возможно ли, что вы хотите '$ (this) .closest ('form')' вместо '.parents'? – orip
Другой вариант без JS - использовать кнопку отправки вместо ссылки. Кнопка может быть написана во что угодно с CSS.
<%using (Html.BeginForm("action", "controller") {%>
<button type="submit">text</button>
<%}%>
У вас есть POST через