Текстовый URL для сайта в asp.net - PullRequest
0 голосов
/ 22 марта 2011

Я занимаюсь разработкой своего блога на сайте asp.net.Я сохраняю свое сообщение в блоге в базе данных sql server 2005.

Я храню это в своей базе данных

  • PostId INT IDENTITY
  • PostText
  • PostAuthor
  • PostedDate
  • IsActive

Итак, на стороне кода, когда пользователь нажимает на тег / ссылку.Это происходит так: http://www.mysite.com/readBlog.aspx?Id=2

На странице readBlog.aspx я читаю URL и извлекаю данные из базы данных.Но это что-то непрофессиональное.Мне нужен такой URL

Скотт Гу пост

Как мне добиться этого более простым способом?

РЕДАКТИРОВАТЬ

Только когда я хочу поделиться URL моего сайта, я могу сделать это следующим образом

http://www.mysite.com/readBlog/How-to-install-visual-studio

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Взгляните на ASP.NET Routing.

Просто зарегистрируйте маршрут в вашем Global.asax:

protected void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("readblog",
        "readblog/{id}/{title}",
        "~/readBlog.aspx");
}

и затем к нему можно получить доступ, например, например ::1100*

var path = RouteTable.Routes.GetVirtualPath(
    null, 
    "readblog", 
    new RouteValueDictionary {{ "id", blogId }, { "title", URLFriendly(title) }}
).VirtualPath;

, где URLFriendly создает URL-версию заголовка (очень хороший пример этого можно было бы взять из ответа Джеффа Этвуда). Это может привести к URL-адресам, таким как:

/readBlog/2/how-to-install-visual-studio или /readBlog/3/something-else.

1 голос
/ 22 марта 2011

Возможно, вы захотите изучить перезапись URL.

Может быть, посмотрите на Скотт Гу Пост на эту тему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...