Поэтому я пишу ASP.NET MVC app и у меня есть небольшая проблема с маршрутизацией файла aspx-в общем, делает эту работу.
Допустим, у меня есть страница razor, И я хочу, например, открыть определенную строку из базы данных и показать ее, это очень просто, и я просто пишу в index.cshtml:
@Url.Action("Details", new { id = item.DB_Id })
И страница деталей раскрывает и я могу увидеть специфические информации этой строки в базе данных
Код маршрутизации:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
Но когда я хочу сделать то же самое, но вместо открытия деталей.cshtml файл я хотел бы сделать это с деталями.aspx (веб-форма) появляется проблема. Должен ли контроллер быть другим, должен ли код маршрутизации быть другим? Или это в принципе возможно? А идеи или подсказки?
Url.Action
helper не создает URL-адреса страниц веб-форм, поскольку они не являются действиями. Вам нужно будет сделать что-то вродеUrl.Content
предназначен для создания URL-адресов статических файлов, но также хорошо работает с веб-формами.Вы можете создать свой собственный помощник, который обрабатывает параметры более чисто. У меня нет времени, чтобы сделать реализацию прямо сейчас, но вы могли бы создать что-то вроде:
Помощник может использовать отражение для создания соответствующей строки запроса и добавления ее к URL-адресу.