Страницы базы данных ASP.NET 4.0, созданные - PullRequest
1 голос
/ 15 мая 2010

Я хочу создать динамические страницы ASP.NET 4.0, загружаемые с моего сервера MS SQL. По сути, это список мест с информацией. Например:

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

Я даже не знаю, с чего начать, возможно, перезапись URL?

1 Ответ

2 голосов
/ 15 мая 2010

Перезапись URL-адреса решает проблему, отличную от описываемой вами.

Вы можете использовать HttpHandler, который обрабатывает запросы к пути location и анализировать последний сегмент, чтобы получить ключ поиска, а затем просто передать выполнение в .aspx. Несмотря на то, что вы передаете выполнение на общую страницу, URL-адрес останется неизменным.

Я приведу пример. Дать ему шанс. вот пример проекта

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

...
<system.web>
  ...
  <httpHandlers>
    <add verb="*" path="location/*.*" type="DBHandler.LocationHandler"/>
  </httpHandlers>
</system.web>
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...