2014-07-24 14 views
6

dostaję ten błąd z Resharper kiedy dodać klasę abstrakcyjną rodzajowe wJak zatrzymać błąd INCORRECT_TYPE_PARAMETER_NUMBER przez Resharper 8.2.1

<configuration> 
    <system.web.webPages.razor> 
     <pages pageBaseType="LegalAudit.Web.WebViewPageBase"> 
    ... 

A klasa:

public abstract class WebViewPageBase<TModel> : WebViewPage<TModel> 
{ 
    // ... 
} 

pojawia się od czasu do czasu po "Zignoruj ​​ten błąd" na liście błędów. Jak całkowicie się go pozbyć?

(Jest to powiązane pytanie na here ale to nie jest podłączony do Resharper.)

Dzięki!

+1

próbowałeś: 'LegalAudit.Web.WebViewPageBase''1' lub' LegalAudit.Web.WebViewPageBase' '1 [[LegalAudit.Web.ModelBase]]' Argh! więc jeden znak zwrotny 'zamiast dwóch. Ale SO nie pozwoli mi uzyskać tej syntaxhighlighted. – jessehouwing

+0

możliwy duplikat [Zarejestruj ogólną stronę bazową klasy] (http://stackoverflow.com/questions/11711959/register-generic-page-base-class) – derigel

+0

@jessehouwing Nop, to nie działa. I próbowałem 'LegalAudit.Web.WebViewPageBase <TModel>' i zrywa z "CS1514: {expected" na 'public class _Page_Views_Home_Index_cshtml: LegalAudit.Web.WebViewPageBase '. Do tej pory nie wiem jak to naprawić. – Artyom

Odpowiedz

11

Making inny non klasy rodzajowe rozwiązać błąd:

public abstract class WebViewPageBase<TModel> : WebViewPage<TModel> 
{ 
    // ... 
} 

public abstract class WebViewPageBase : WebViewPageBase<object> 
{ 

} 
+1

Może ktoś to wyjaśnić ... może połączyć mnie do czegoś do czytania, dzięki – Seabizkit

+0

To nie działa we wszystkich widokach uzyskać Ciężkość \t Kod \t Opis \t projektu: Błąd \t CS0103 \t Nazwa „ViewBag” nie istnieje w obecny wśród wielu innych błędów związanych z niestandardową rozszerzoną klasą bazową. Nie tylko to, ale nie mogę opublikować z powodu tych błędów. – jwize

2

Kiedy dodać następujące do pliku web.config, błąd nie zniknie, jak oczekiwano. Reshaper słusznie chce, aby określić konkretną realizację WebViewPageBase:

<system.web.webPages.razor> 
    <pages pageBaseType="MvcApplication1.WebViewPageBase`1[[TModel]]"> 
    </pages> 
    </system.web.webPages.razor> 

I

namespace MvcApplication1 
{ 
    using System.Web.Mvc; 

    public abstract class WebViewPageBase<TModel> : WebViewPage<TModel> 
    { 

    } 
} 
+1

Dziękuję za odpowiedź. Ale to nie pomogło. Wszystkie poglądy zepsuły się z błędami R # takimi jak "Typ argumentu" ... ViewModel "nie można przypisać typowi modelu" TModel "i błędom kompilacji, takim jak:" public class _Page_Views_Home_Index_cshtml: .... Web.WebViewPageBase <> [[TModel] ] ". I BTW ildaz pokazuje klasę jak 'MvcApplication1.WebViewPageBase'1 '. – Artyom

+0

Ma to sens, ponieważ 'TModel' to nie to samo co' ViewModel'. Ponownie powinny działać następujące elementy: MvcApplication1.WebViewPageBase'1 [[MvcAppliation1.YourBaseViewModel]]. – jessehouwing

+0

Nie mam klasy bazowej. Próbowałem już z interfejsem, z którego niektóre widoki dziedziczą i to nie pomogło (powyższy błąd). W każdym razie nie mam żadnych ograniczeń dla 'TModel' w' WebViewPageBase', więc to nie wygląda dobrze. AKTUALIZACJA. I nie działa dla '.. [[System.Object]]'. – Artyom

Powiązane problemy