Ciao sto imparando Ajax + MVC. Ho pensato che sarebbe stato carino per il Controller gestire automaticamente reindirizzamenti ajax-aware(). Dopo alcuni scavi, ho trovato il codice da questo link. Il codice sotto è completamente trasparente per l'utente, un utente può semplicemente chiamare Redirect (someUrlString) senza doversi preoccupare della differenza tra le chiamate normali/ajax. Lo rende molto pulito e fresco.Controller di estensione MVC con funzionalità di reindirizzamento ajax-aware
public abstract class BaseController : System.Web.Mvc.Controller {
//turn into ajax aware redirect
protected override RedirectResult Redirect(string url) {
return new AjaxAwareRedirectResult(url);
}
}
e ...
public class AjaxAwareRedirectResult : RedirectResult {
public AjaxAwareRedirectResult(string url) : base(url) { }
public override void ExecuteResult(ControllerContext context) {
if (context.RequestContext.HttpContext.Request.IsAjaxRequest()) {
string desturl = UrlHelper.GenerateContentUrl(Url, context.HttpContext);
JavaScriptResult result = new JavaScriptResult() {
Script = "window.location='" + desturl + "';" };
result.ExecuteResult(context);
}
else { base.ExecuteResult(context); }
}
}
Tuttavia, non è completa. Challenge è:
RedirectToRouteResultRedirectToAction
(ActionResult risultato)
non c'è ancora (molto utile soprattutto per T4MVC).
Come io sono ancora nuovo per MVC, ho provato, ma non sono abbastanza esperto per capire sufficientemente il modo di scrivere questo me stesso. Qualcuno di voi esperti può aiutarmi con questo? quindi posso imparare dal tuo codice? Grazie mille.