none
MVC3 views (Razor) + MEF: Como colocar as views em uma biblioteca de classe? RRS feed

  • Pergunta

  • Pessoal,

    Em um projeto aqui estamos utilizando MVC3 (Razor view engine) + MEF para criar a aplicação e seus módulos.
    O propósito é criar módulos que você simplesmente copia a DLL para dentro de um diretório e a partir daí o sistema reconhece e habilita o módulo.

    Bom, estamos conduzindo o desenvolvimento, até agora, com as views (cshtml) fora da DLL porque não conseguimos fazer funcionar nem com muita força de vontade.

    O detalhe é que, incluindo a view dentro da DLL temos um problema: O Razor deixa de reconhecer a view como sendo derivada de uma WebViewPage e acusa erro.

    Para colocar as views dentro da DLL nós criamos um VirtualPathProvider que, basicamente, encontra a view e retorna o stream para o arquivo. Até aqui, normal.

    No entanto, como o Razor utiliza o arquivo Web.config que está dentro da pasta views, mesmo eu retornando o stream da view o Razor não detecta os dados da view nem a _ViewStart nem o _Layout.

    Com isso perdemos todas estas funcionalidades.

    No entando não queremos as views como pré-compiladas.
    Portanto, posts como este http://www.chrisvandesteeg.nl/2010/11/22/embedding-pre-compiled-razor-views-in-your-dll/#axzz1E3KVZXqS não servem, justamente porque não me oferecem o que eu quero: apenas colocar a view dentro da Class Library como um Embedded Resource, e não como uma view pré-compilada.

    Alguém tem uma sugestão?

    sexta-feira, 18 de fevereiro de 2011 11:54

Todas as Respostas