Για να ανακατευθύνετε πριν από την ονομασία μιας συγκεκριμένης ενέργειας
Όταν επισκέπτεστε μια τοποθεσία που δημιουργείτε σε ASP.NET MVC, η διεύθυνση URL και η δρομολόγηση θα καλούν την αντίστοιχη ενέργεια ελεγκτή, αλλά σε ορισμένες περιπτώσεις μπορεί να θέλετε να την ανακατευθύνετε σε άλλη ενέργεια ή σελίδα πριν κληθεί η αντίστοιχη ενέργεια.
Εάν θέλετε να ανακατευθύνει κάθε ενέργεια, μπορείτε να χρησιμοποιήσετε το RedirectResult ή το RedirectToRouteResult για να την λύσετε, αλλά μπορείτε να χρησιμοποιήσετε τη μέθοδο παράκαμψης Controller.OnActionExecuting, εάν θέλετε να ανακατευθύνετε από κοινού πριν κληθεί κάθε ενέργεια. Αυτή η μέθοδος είναι η μέθοδος που γίνεται πριν από κάθε ενέργεια καλείται.
Εάν θέλετε να ανακατευθύνει η μέθοδος Controller.OnActionExecuting:
public class MyController : Controller
{
// 各アクションが呼ばれる前に呼ばれるメソッド
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (リダイレクトさせる条件)
{
filterContext.Result = new RedirectResult(url);
return;
}
}
}
Εάν ορίσετε ένα Αποτέλεσμα ανακατεύθυνσης με μια διεύθυνση URL στο ActionExecutingContext.Result, ανακατευθύνετε στην καθορισμένη διεύθυνση URL. Εάν δεν διακλαδίζεται με μια δήλωση if, εκτελείται ανακατεύθυνση σε όλες τις ενέργειες που ανήκουν στον ελεγκτή προορισμού.
Μπορείτε επίσης να ορίσετε μια κοινή κλάση controller για κάθε βασική κλάση κλάσης controller και να υλοποιήσετε τη μέθοδο OnActionExecuting για κοινή χρήση της επεξεργασίας με πολλές ελεγκτών.
"ActionExecutingContext.Result" είναι ένας τύπος αποτελέσματος ενέργειας, ώστε να μπορείτε να χρησιμοποιήσετε την κλάση RedirectToRouteResult ή τη μέθοδο Controller.RedirectToAction.