Ho un metodo per rimuovere l'oggetto. La rimozione non possiede la vista ed è un pulsante "Elimina" in "EditReport". Dopo aver rimosso con successo un reindirizzamento su "Report".Come continuare a utilizzare ModelState con RedirectToAction in ASP.NET MVC 6?
In ASP.NET MVC 5 Uso i seguenti attributi per salvare ModelState tra i metodi Ho preso da qui: https://stackoverflow.com/a/12024227/3878213
public class SetTempDataModelStateAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
filterContext.Controller.TempData["ModelState"] =
filterContext.Controller.ViewData.ModelState;
}
}
public class RestoreModelStateFromTempDataAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
if (filterContext.Controller.TempData.ContainsKey("ModelState"))
{
filterContext.Controller.ViewData.ModelState.Merge(
(ModelStateDictionary)filterContext.Controller.TempData["ModelState"]);
}
}
}
Ma in ASP.NET MVC 6 RC 1 (ASP.NET core 1.0), questo codice non funziona.
Errore in filterContext.Controller non contiene definizioni per TempData e ViewData.
Ci dovrebbe essere un controllo per evitare che i non errori vengano visualizzati nella riga 'SetTempDataModelStateAttribute'' var listError = modelState.ToDictionary (m => m.Key, m => m.Value.Errors' dovrebbe essere 'modelState.Where (x => x.Value.Errors.Any()). ToDictionary (m ...' –
Uso 'attendi dopo() ; 'non è corretto qui in quanto provoca il colpire quel metodo più volte. –