Pergunta

Eu sou apresentado com um problema do uso de variáveis ??de seqüência de consulta em um aplicativo RESTful Asp.net MVC. Será que isso viola o padrão RESTful?

A coisa é que Asp.net MVC utiliza rota padrão como:

/controller/action/id

Eu tenho que passar por outro controlador + combinação de ação como:

/controller/action/id/controllerX/actionX

mas isso não vai funcionar se eu estaria na raiz do meu pedido, porque os três primeiros parâmetros serão omitidos e os dois últimos serão tratados como o primeiro casal.

Em vez disso, eu estou tentado a usar esta notação em vez disso:

/controller/action/id?Param=controllerX/actionX

que também funcionam em root

http://domain/?Param=controllerX/actionX

Mas isso é RESTful?

Um pouco de uma explicação

Eu quero ter uma abordagem mais modular para meus pontos de vista do que o normal, built-in com PartialViews. Porque se eu tenho uma visão parcial que é exibida em muitas páginas eu tenho que adicionar dados vide para essa visão parcial particular na cada ação do controlador que retorna uma exibição que usa essa visão parcial particular. E eu acho que é uma maneira errada de fazer as coisas. Controladores de se tornar dependente de vistas parciais que podem (ou Deus me livre não podem ) ser parte da vista principal.

ações

renderização em vez de vistas parciais vir para o resgate. Eu uso minha própria Html.RenderAction() que as chamadas para a ação de algum controlador que prepara apenas o seu próprio dados. Grande Isso funciona bem.

Primeiro problema foi com o método HTTP que foi propagada para todas as ações RenderAction. Então eu mudei-lo e eu posso controlar método HTTP como eu gosto. Algumas ações podem sempre estar usando GET não importa se a tela principal foi postada de volta (assim usando POST).

O problema é quando essas ações voltar vistas parciais com seus próprios elementos do formulário. Desde os meus sub ações não podem ser directamente enviados para (porque eles não sabem que fim de retorno) eles realmente enviar para a vista em vez. Todas as ações sub com formas geralmente têm propagado método HTTP a partir da vista principal, então eles vão realmente entrar execução da ação de postagem.

A coisa é que apenas a forma atual que estava sendo enviada de volta deve executar sua ação POST. Outros devem apenas usar o método GET. Aqui é onde o meu segundo par controlador / ação entra em jogo. A cada sub ação mensagens formulário de volta para

mainViewController/action/?PostForm=controller/action

, onde o segundo parâmetro ajuda a decidir qual renderização sub ação deve propagar método POST para isso. Essa forma particular serão validadas, tal como definido na sua acção post.

Espero que isso explica meu problema um pouco mais com um exemplo concreto. Este problema está relacionado à minha de ontem pergunta .

Foi útil?

Solução

Se este URL irá resultar no mesmo ponto de vista devolvidos sem dependência de sessão ou os cookies ou o histórico de navegação anterior de um cliente, então sim, será que vocês chamam RESTful.

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