Pergunta

O novo roteamento ASP.NET é grande para o estilo simples caminho URL de mas se você quiser usar um url como:

http://example.com/items/search .xhtml? term = Texto + para + achado & page = 2

Você tem que usar uma captura todos os parâmetros com uma validação?

Foi útil?

Solução

Todos os itens vista de dados que não estão listados na rota são automaticamente mapeados para a querystring, por isso, se você mapear "itens / search.xhtml" para uma ação:

Search(string term, int page)

Em seguida, você deve obter os resultados que você está procurando.

Outras dicas

Você pode combinar querystring parâmetros com rotas, bem como, se você quiser apenas capturar tudo o que você precisa adicionar um parâmetro assim:

{* contentURL}

O que irá preencher o resto do URL em que variável.

Eu também estava tendo problemas para passar uma URL codificada a uma rota como um parâmetro de rota.

Você não pode usar url codificado caracteres em uma URL, mas você pode em um string de consulta.

Portanto, eu precisava da minha rota para também têm um elemento de string de consulta a ele.

dizer que tenho uma rota:

MapPageRoute("myroute", "myroute/{x}", "~/routehander.aspx")

Mas eu quero-o na forma de:

http://mywebsite.com/myroute/{x}?url=myurl

Podemos fazer isso:

Dim x as integer = 12
Dim rvd As New Routing.RouteValueDictionary
rvd.Add("x", x)
rvd.Add("url", Server.UrlEncode("/default.aspx"))
HttpContext.Current.ApplicationInstance.Response.RedirectToRoutePermanent("myroute", rvd)

Isso nos redirecionar para o seguinte endereço:

http://mywebsite.com/myroute/12?url=%252fdefault.aspx

Você ainda pode usar Request.QueryString["some_value"];

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