Question

Je souhaite créer des pages dynamiques ASP.NET 4.0 chargées à partir de mon serveur MS SQL. Fondamentalement, il s'agit d'une liste d'emplacements avec des informations. Par exemple:

Location1 would have the page www.site.com/location/location1.aspx
Location44 would have the page www.site.com/location/location44.aspx

Je ne sais même pas par où commencer par cela, une réécriture d'URL peut-être?

Était-ce utile?

La solution

La réécriture d'URL aborde un problème différent de ce que vous décrivez.

Vous pouvez utiliser un httphandler qui gère les demandes sur le chemin location et analyser le dernier segment pour obtenir votre clé de recherche, puis passer l'exécution à un .aspx. Bien que vous passiez l'exécution à une page générale, l'URL restera comme entré.

Je fournirai un exemple. Donner un coup de feu. Voici un exemple de projet

Emplacement-handler.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 extrait

...
<system.web>
  ...
  <httpHandlers>
    <add verb="*" path="location/*.*" type="DBHandler.LocationHandler"/>
  </httpHandlers>
</system.web>
...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top