Banco de dados ASP.NET 4.0 Criou páginas
-
26-09-2019 - |
Pergunta
Quero criar páginas dinâmicas ASP.NET 4.0 carregadas no meu MS SQL Server. Basicamente, é uma lista de locais com informações. Por exemplo:
Location1 would have the page www.site.com/location/location1.aspx
Location44 would have the page www.site.com/location/location44.aspx
Eu nem sei por onde começar com isso, talvez a reescrita de URL?
Solução
A reescrita de URL aborda um problema diferente da que você está descrevendo.
Você pode usar um httphandler que lida com solicitações no caminho location
e analise o último segmento para obter sua tecla de pesquisa e basta passar a execução para um .aspx. Embora você esteja passando pela execução para uma página geral, o URL permanecerá conforme inserido.
Vou fornecer um exemplo. Dê uma chance. Aqui está um projeto de amostra
LocationHandler.cs
using System.IO;
using System.Web;
namespace DBHandler
{
public class LocationHandler : IHttpHandler
{
#region IHttpHandler Members
public void ProcessRequest(HttpContext context)
{
HttpRequest request = context.Request;
string page = Path.GetFileNameWithoutExtension(request.Url.Segments[request.Url.Segments.Length - 1]);
// for url ~/location/location33.aspx page will be 'location33'
// do something interesting with page, perhaps
context.Server.Execute("~/locations.aspx?locationId=" + context.Server.UrlEncode(page));
}
public bool IsReusable
{
get { return false; }
}
#endregion
}
}
locations.aspx
<%@ Page Language="C#" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Request["locationId"];
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
Web.Config Exterpt
...
<system.web>
...
<httpHandlers>
<add verb="*" path="location/*.*" type="DBHandler.LocationHandler"/>
</httpHandlers>
</system.web>
...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow