{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}
06/03/2011
Mostrei um pouco o que é o framework Nancy e como começar a trabalhar com ele. No primeiro post mostrei apenas como trabalhar com requisições GET. Vamos então entender como trabalhar com valores via requisições POST.# Valores POST no framework Nancy Espero que vocês já tenham configurado sua aplicação para Nancy (se não viram confiram aqui).Vamos criar um módulo Nancy, como abaixo:
namespace NancyModulePost{ using Nancy;
public class MainModule : NancyModule {
public MainModule() { Get["/"] = p => {
return View["formulario.cshtml"];
}
;
Post["/postar"] = p => {
var nome = Request.Form["Nome"];
var sobrenome = Request.Form.Sobrenome;
return View["postado.cshtml", new Dados(nome, sobrenome)];
}
;
}
}
}
Simples não? Vejam que na linha 14 estamos definindo uma "rota" para requisições do tipo POST para "/postar". Para recuperar os valores enviados do formulário precisamos acessar o dicinário Form do objeto Request. Por enquanto não existem nenhum model binder no Nancy (existe um spike que pode ser visto aqui (https://github.com/grumpydev/Nancy/tree/ModelBindersSpike).Desta forma podemos acessar os valores tanto através da sintaxe index-based usando Form["chave"] ou a sintaxe dynamic com Form.Chave.A nossa view não contém mais do que um simples formulário html:
Sobrenome: </label> <input type="text" name="Sobrenome" /><br /> <input type="submit" value="Postar" /> </form></body>
Repare que a action do form é "/postar" ou seja, vai cair no mapeamento que fizemos no nosso módulo do Nancy.Criei também uma view para exibir os dados postados:
<body> Nome postado: @Model</body>
Pronto! Isso é tudo. Agora temos os dados postados e estamos exibindo-os. Claro poderíamos manipulá-los de algumas maneiras, inserir no banco, etc (falarei sobre banco de dados em post futuro).Confira abaixo o resultado:
É isso aê galera. Em breve posto mais coisas sobre este framework: Nancy. enquanto isso baixem o fonte, brinquem, olhem os testes, etc.
Abraços, Vinicius Quaiato.