ASP.NET 4.0 -Datenbank erstellte Seiten
-
26-09-2019 - |
Frage
Ich möchte ASP.NET 4.0 -Dynamik -Seiten erstellen, die von meinem MS SQL -Server geladen wurden. Grundsätzlich handelt es sich um eine Liste von Standorten mit Informationen. Zum Beispiel:
Location1 would have the page www.site.com/location/location1.aspx
Location44 would have the page www.site.com/location/location44.aspx
Ich weiß nicht einmal, wo ich damit anfangen soll.
Lösung
Das Umschreiben von URL befasst sich mit einem anderen Problem als das, was Sie beschreiben.
Sie können einen httphandler verwenden, der Anfragen zum Pfad abwickelt location
und analysieren Sie das letzte Segment, um Ihren Lookup -Schlüssel zu erhalten, und geben Sie einfach die Ausführung an ein .aspx. Obwohl Sie die Ausführung auf eine allgemeine Seite weitergeben, bleibt die URL wie eingegeben.
Ich werde ein Beispiel geben. Versuch es einmal. Hier ist ein Beispielprojekt
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
}
}
Standorte.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 Auszug
...
<system.web>
...
<httpHandlers>
<add verb="*" path="location/*.*" type="DBHandler.LocationHandler"/>
</httpHandlers>
</system.web>
...