编写ASP.NET web窗体类似ASP.NET MVC(使用Razor)URL



我正在尝试重新装饰我在ASP中使用的URL。NET Web窗体应用程序就像使用剃刀的Asp.NET MVC应用程序一样,我所做的第一步是删除aspx的后续应用程序,我已经完成了这项工作,但第二步是我正在尝试替换pagename?id=具有pagename/id的someid或者除了通常的公式之外的任何公式,tbh最终的任务是减少ULR中使用的字符,因此删除.aspx将执行4个字符,而第二种方法将替换?id=带斜线并且使用类似n1的pagename+id重命名页面将不会影响服务器,因为页面名称将被更改

我在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>

更新!经过几个小时的搜索和测试,我能够找到半解决方案,我称之为半解决方案,因为ajax调用不再工作,并且任何具有更新面板的页面都显示与axd相关的错误,我使用路由作为下面的链接

ASP。NET路由与Web窗体

刚刚将以下代码添加到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" }));

最新更新