Написание веб-форм Asp.net URL приложения Как Asp.net MVC (который использует Razor) URL

Приветствую, простите мой, возможно, неважный вопрос, я просто пытаюсь обновить URL-адреса, которые я использую в своем приложении веб-форм Asp.net, чтобы они были похожи на приложения Asp.net MVC, которые используют бритву, первый шаг, который я сделал, - это удалить преемник aspx, и я закончил с этим, но второй шаг, который я пытаюсь, - это заменить pagename? id = someid на pagename / id или любую формулу, кроме обычной формулы, tbh задача в конечном итоге состоит в том, чтобы уменьшить количество символов, используемых в ULR, поэтому удаление .aspx исключает 4 символа, а второй подход заменит? Id = косой чертой, а переименование страницы с pagename + id, например n1, не попадет на сервер, так как имя страницы было бы изменено, любое предложение приветствуется! Я сделал следующее изменение в своем web.config, чтобы исключить преемника aspx

<system.webServer>
        <rewrite>
            <rules>
                <rule name="RewriteASPX">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="{R:1}.aspx" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>

person Khalid    schedule 08.05.2021    source источник


Ответы (1)


Обновлять! Я могу найти полурешение после нескольких часов поиска и тестирования, я назвал его полурешением, потому что вызовы ajax больше не работают, и на любой странице с панелью обновлений отображается ошибка, связанная с axd, я использовал маршрутизацию в качестве ссылки ниже

Маршрутизация ASP.NET с веб-формами

просто добавил приведенный ниже код в файл global.asax

protected void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes(RouteTable.Routes);
        }
        void RegisterRoutes(RouteCollection routes)
        {
               routes.MapPageRoute(
                "mypage",
                "mypage/{Name}",
                "~/mypage.aspx"
                                  );
         }

и на моей странице я перенаправляюсь как:

Response.Redirect(GetRouteUrl("mypage", new { Name = "myparam" }));
person Khalid    schedule 08.05.2021
comment
вышеуказанные решения работают, но если у меня есть панель обновлений, у меня есть ошибка диспетчера сценариев axd, ошибка Uncaught: не удалось загрузить платформу на стороне клиента ASP.NET Ajax. - person Khalid; 10.05.2021