Pergunta

Am I faltando algo fundamental para os princípios do MVC ou estou ficando louco?

Se eu tenho uma visão que exibe uma lista de livros e uma lista de autores, eu tenho que criar classe que teria a lista de livros e lista de autores como propriedades. Certo?

Eu, então, digitar fortemente a fim de usar essa classe.

Agora eu quero criar uma nova página com as mesmas listagens, mas que também tem uma lista de promoções. Eu preciso criar uma outra classe com uma lista de livros de propriedade, uma lista dos bens autores e uma lista de propriedades promoções?

Se eu estou criando classes para todos os pontos de vista que eu estou criando um inferno de um monte de trabalho extra. Eu deveria estar criando parciais digitadas fortes para cada um deles? E se o layout difere cada vez?

Atualmente tenho uma classe BaseViewData que é usado por todos os pontos de vista, pois contém algumas propriedades comuns. No entanto, agora estou lutando para obter outros itens sem inchaço completamente a classe BaseViewData.

Por favor, alguém pode me ajudar a entender a teoria de que todos os exemplos simples não cobrem.

Foi útil?

Solução

Eu uso o ViewData métodos de extensão from MvcContrib que o apoio adicional para vários modelos digitado fortemente (contanto que eles são diferentes tipos). Código adicioná-los aos olhares ViewData como esta:

User currentUser = GetCurrentUser();
List<Project> projectList = projectRepository.GetRecentProjects(currentUser);
ViewData.Add(user);
ViewData.Add(projectList);

O código no fim de retirá-los parecido com este:

User user = ViewData.Get<User>();
List<Project> projectList = ViewData.Get<List<Project>>();

Isso remove tanto as "cordas mágicas" e do tipo de fundição. Note, isto não faz nada com o Modelo propriedade da vista.

Outras dicas

Criar uma classe recipiente para o objeto sempre em seu sistema, e uso para todos os pontos de vista - simples

Objetos com valor nulo tem nenhuma sobrecarga verdadeiro

Eu corri para o mesmo problema. Acho que a solução geral para a maioria das pessoas é criar uma classe recipiente que contém os modelos de livros e autores que você realmente quer, e passar essa recipiente para seu View.

Sub-ótima, sim, mas ele funciona. Esperemos que isto irá ser abordada em futuras versões do quadro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top