Czy można wymusić na @Html.ActionLink()
wykonanie POST
zamiast na GET
? Jeśli tak to jak?ASP.NET MVC 3: Jak zmusić link ActionLink do zrobienia HttpPost zamiast HttpGet?
Odpowiedz
ActionLink
Metoda pomocnicza wyrenderuje znacznik anchor
, klikając na to zawsze jest żądanie GET
. Jeśli chcesz, aby było to żądanie POST
.Należy zastąpić domyślny behviour przy wykorzystaniu małego javacsript
@ActionLink("Delete","Delete","Item",new {@id=4},new { @class="postLink"})
Teraz niektórzy jQuery
kod
<script type="text/javascript">
$(function(){
$("a.postLink").click(function(e){
e.preventDefault();
$.post($(this).attr("href"),function(data){
// got the result in data variable. do whatever you want now
//may be reload the page
});
});
});
</script>
Upewnij się, że masz Action
metoda HttpPost
typu obsłużyć tego żądania
[HttpPost]
public ActionResult Delete(int id)
{
// do something awesome here and return something
}
Co chciałbym zrobić, to owinąć wokół postaci html
@using(Html.BeginForm("YourAction","YourController", FormMethod.Post)){
<button>Hello</button>
}
Zamiast linka możesz użyć przycisku.
Jeśli naprawdę chcesz zastosować link, może trzeba trochę javascript
coś takiego:
$("#idOfYourLink").click(function(){
var form = $(this).parents('form:first');
form.submit();
});
Jeśli uważasz, że ... nie ma tagu dla łącza w HTML, który robi STANOWISKO. I dlatego nie można wymusić połączenia, aby wykonać test POST (i nie ma to żadnego sensu). Aby użyć "POST", należy "POST" coś. I że coś powinno być formą, lub możesz zrobić POST używając funkcji javascript dla AJAX. W każdym razie, jeśli potrzebujesz POST bez postu, powinieneś przejrzeć swój resourcemodel, coś śmierdzi.
Jest to dość powszechne i całkowicie akceptowalne w społeczności Rails na przykład jako sposób de Lete obiektów. – wgpubs
Nie można umieścić elementu POST na serwerze WWW za pomocą elementu .
Możesz użyć Javascript, aby uchwycić zdarzenie click, zatrzymać nawigację i wykonać AJAX POST na serwerze, ale jeśli użytkownik ma wyłączoną obsługę JavaScript, nic się nie stanie.
Czy trzeba użyć elementu <a>
, lub po prostu coś, co przypominaelement <a>
?
Warto również wspomnieć o tym, że warto spojrzeć na AjaxLink
. Pozwala na łatwe użycie elementu <a>
do wykonania testu POST AJAX.
Przypuszczam, że jeśli potrzebujesz czegoś takiego, to dla akcji, która będzie robić coś "stałego" po stronie serwera. Na przykład usunięcie obiektu w bazie danych.
Powyżej znajduje się pełna przykładem robi kasowania za pomocą łącza i publikacji: http://www.squarewidget.com/Delete-Like-a-Rock-Star-with-MVC3-Ajax-and-jQuery
z poprzedniego związku (zalecane i tak czyta):
DELETE ogniwem w widoku:
@Ajax.ActionLink("Delete", "Delete", "Widget",
new {id = item.Id},
new AjaxOptions {
HttpMethod = "POST",
Confirm = "Are you sure you want to delete this widget?",
OnSuccess = "deleteConfirmation"
})
trochę JS:
function deleteConfirmation(response, status, data) {
// remove the row from the table
var rowId = "#widget-id-" + response.id;
$('.widgets').find(rowId).remove();
// display a status message with highlight
$('#actionMessage').text(response.message);
$('#actionMessage').effect("highlight", {}, 3000);
}
- 1. ASP.NET MVC ActionLink poza obszarem
- 2. Asp.Net MVC ActionLink
- 3. Silnie wpisane actionlink z ASP.NET mvc beta?
- 4. Jak wysłać wartość tekstowego do actionlink w ASP.NET MVC
- 5. Jak utworzyć httppost uzyskujący te same parametry z httpget?
- 6. ASP.NET MVC actionlink z linktext = absolutny URL
- 7. Silnie typowy ActionLink w Asp.Net MVC 2?
- 8. Razor MVC 3 RC2 - WebGrid actionlink z tekstu dynamicznego
- 9. MVC MapPageRoute i actionlink
- 10. Jak dołączyć zakładkę/fragment do łącza ActionLink?
- 11. Jak zmusić link HTML do absolutnego działania?
- 12. Aktualizowanie ASP.NET MVC 3 projektu do ASP.NET MVC 4
- 13. @ Html.ActionLink w ASP.NET MVC 3
- 14. ASP.NET MVC, jak zaimplementować link, który powraca do poprzedniej strony?
- 15. ASP.Net MVC 3 wiążą właściwość ciąg jako string.Empty zamiast NULL
- 16. ASP.NET MVC 3 _Layout.cshtml Kontroler
- 17. ACL w ASP.NET MVC 3
- 18. ASP.NET MVC 3 - przekierowanie do innej akcji
- 19. Uwierzytelnianie użytkowników ASP.NET MVC 3
- 20. asp.net mvc 3 C# post tablica zmiennych
- 21. ASP.NET MVC 3 ViewModel danych Adnotacje
- 22. asp.net mvc 3 pobierz wyjątek
- 23. ASP.NET MVC 3 Viewmodel Pattern
- 24. ASP.NET MVC 3, jak robić motywy właściwe
- 25. ASP.NET MVC 3 plany książek
- 26. ASP.NET MVC 3 Generic DisplayTemplates
- 27. ASP.NET MVC 3 przy użyciu uwierzytelniania
- 28. Jak zmusić MVC do walidacji IValidatableObject
- 29. Tworzenie https actionlink
- 30. Jak przekazać routeValues, która zawiera łącznik za pośrednictwem actionlink w asp.net mvc 5
Wcale nie mogą one być tylko dla GET – VJAI