risposta

7

Con ReSharper è possibile fare clic destro una vista Razor e Trova Usi, ma ci si deve passare attraverso manualmente e ripetere per tutte le viste (a meno che non si può collegare in API ReSharper e automatizzare esso).

Il problema di vista, naturalmente, è che sono in ritardo con associazione sulla base di una convenzione definita nel motore di visualizzazione, in caso di default RazorViewEngine sembra per un corrispondente vista in ~/Views/{Controller}/{Action} e ~/Views/Shared/{Action}. Quindi è difficile dire al momento della progettazione o della compilazione quali viste, parziali e modelli non vengano mai usati.

È possibile apprenderlo dall'angolo opposto: individuare le viste utilizzate. Quindi diff questo elenco rispetto a tutte le viste nel progetto, valuta i risultati (manualmente e con ReSharper Trova usi) e verifica che non vengano effettivamente utilizzati prima di rimuoverli definitivamente.

Per trovare le visualizzazioni in uso è possibile personalizzare il RazorViewEngine da registrare ogni volta che carica una vista con CreateView e FindPartialView, ad es.

public class LoggingRazorViewEngine : RazorViewEngine 
{ 
    protected override IView CreateView(
     ControllerContext controllerContext, 
     string viewPath, 
     string masterPath) 
    { 
     LogManager.GetLogger("").Debug(viewPath); 
     return base.CreateView(controllerContext, viewPath, masterPath); 
    } 
} 

configurarlo in global.asax.cs

ViewEngines.Engines.Clear(); 
ViewEngines.Engines.Add(new LoggingRazorViewEngine()); 

quindi estrarre un elenco di percorsi vista unica registrati da confrontare con vista del vostro progetto. Un po 'di impegno, ma forse vale la pena se hai molte viste inutilizzate che ingombrano il progetto.

-1

Si potrebbe rinominare una delle viste sospetti e compilare ... se alcuni controller è Con esso si otterrà errori :)

Non so di alcuna funzione "integrata" per cercare le viste inutilizzate.

+0

L'unico problema che potrebbe sorgere in fase di compilazione è se si rinomina al di fuori di Visual Studio e c'è ancora un riferimento al file con il nome precedente in CSProj - altrimenti verrà compilato senza alcuna visualizzazione corrispondente bene . ReSharper dovrebbe mostrare un errore se lo hai installato - ma ho dovuto effettivamente aprire il controller per mostrare l'errore. Vale anche la pena notare che anche questo non è infallibile se esiste un'altra vista con nome corrispondente nella posizione condivisa o nella directory delle viste delle radici dell'applicazione se la vista che si sta cancellando si trova in un'area. – pwdst

Problemi correlati