ASP.NET файл aspx маршрутизации MVC

Поэтому я пишу 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 (веб-форма) появляется проблема. Должен ли контроллер быть другим, должен ли код маршрутизации быть другим? Или это в принципе возможно? А идеи или подсказки?

1 ответ

  1. Url.Action helper не создает URL-адреса страниц веб-форм, поскольку они не являются действиями. Вам нужно будет сделать что-то вроде

    @Url.Content("~/somefolder/Details.aspx?id=" + item.DB_Id)
    

    Url.Content предназначен для создания URL-адресов статических файлов, но также хорошо работает с веб-формами.

    Вы можете создать свой собственный помощник, который обрабатывает параметры более чисто. У меня нет времени, чтобы сделать реализацию прямо сейчас, но вы могли бы создать что-то вроде:

    @Url.WebFormsPage("~/somefolder/Details.aspx", new { id = item.DB_Id })
    

    Помощник может использовать отражение для создания соответствующей строки запроса и добавления ее к URL-адресу.