5

Załóżmy abstrakcyjny wzór takiego:UIHint nie można rozwiązać szablon abstrakcyjnych modeli

public abstract class MyClass : BaseEntity 
{ 
    [UIHint("File")] 
    public long? DocumentFileId { get; set; } 
} 

Problemem jest Cannot resolve template 'File', podczas gdy istnieje File.cshtml szablonów edytora.

Message as shown in Visual Studio

Chodzi o to, gdybym nie definiują MojaKlasa jako abstrakcyjne klasy, błąd zostanie rozwiązany.

Moje pytanie brzmi, dlaczego szablon edytora nie może zostać rozwiązany w klasach abstrakcyjnych i jak mogę sobie z nim poradzić?

+2

Gdzie są przechowywane szablony? MVC znajdzie je tylko wtedy, gdy znajdują się w folderze o nazwie 'EditorTemplates' lub' DisplayTemplates', który znajduje się w 'Widoki/Shared /' lub 'Widoki/{YourController}'. – DavidG

+0

@DavidG: Racja, a moja tam jest. Ten szablon działa w całym projekcie, ale w klasach abstrakcyjnych. –

+0

Skąd bierze się błąd? – DavidG

Odpowiedz

4

To jest błąd z ReSharper, który był reported prawie rok temu. Nie wygląda na to, że JetBrains jest w pośpiechu, aby to naprawić.

Jednak nie powinno to zakłócać twojego rozwoju, a nie być uciążliwe.

+0

Zmieniłem stopień ważności z błędu na sugestię, aby pozbyć się przyciągającego wzrok czerwonego koloru –

2

Inną opcją jest zniesienie ostrzeżenia na poziomie klasy, tak jak to;

[SuppressMessage("ReSharper", "Mvc.TemplateNotResolved")] 
public abstract class MyClass : BaseEntity 
{ 
    // .... 
0

Wyłączyłem to ostrzeżenie w klasach abstrakcyjnych z komentarzami.

// Resharper 8 fails to resolve templates in abstract classes. 
// https://youtrack.jetbrains.com/issue/RSRP-373171 
// ReSharper disable Mvc.TemplateNotResolved 
public abstract class MyAbstractClass 
{ 
    ... 
Powiązane problemy