Περισσότερα
HTML.ActionLink vs Url.Action στο ASP.NET Razor
Υπάρχει κάποια διαφορά μεταξύ του HTML.ActionLink
και του Url.Action
ή είναι απλώς δύο τρόποι για να γίνει το ίδιο πράγμα;
Πότε θα πρέπει να προτιμήσω το ένα από το άλλο;
286
3
Ναι, υπάρχει διαφορά. Το
Html.ActionLink
παράγει μια ετικέτα<a href=".."></a>
ενώ τοUrl.Action
επιστρέφει μόνο ένα url.Για παράδειγμα:
παράγει:
and
Url.Action("someaction", "somecontroller", new { id = "123" })
generates:Υπάρχει επίσης η Html.Action η οποία εκτελεί μια ενέργεια ενός παιδικού ελεγκτή.
Το
Html.ActionLink
δημιουργεί αυτόματα μια ετικέτα<a href=".."></a>
.Το
Url.Action
παράγει μόνο ένα url.Για παράδειγμα:
παράγει:
και
παράγει:
Το καλύτερο πλεονέκτημα που μου αρέσει είναι η χρήση του
Url.Action(...)
Δημιουργείτε την ετικέτα άγκυρας από μόνοι σας, όπου μπορείτε να ορίσετε το δικό σας συνδεδεμένο κείμενο εύκολα ακόμη και με κάποια άλλη ετικέτα html.
Στο παραπάνω παράδειγμα μπορείτε να δείτε ότι αν χρειάζομαι συγκεκριμένα ένα κουμπί για να κάνω κάποια ενέργεια, θα πρέπει να το κάνω με το @Url.Action ενώ αν θέλω απλά έναν σύνδεσμο θα χρησιμοποιήσω το @Html.ActionLink. Το θέμα είναι όταν πρέπει να χρησιμοποιήσετε κάποιο στοιχείο(HTML) με δράση χρησιμοποιείται το url.