当涉及参数时,如何在ASP.NET 4.0中指定url映射? 问题
我有一个网站,里面有一些文章。使用数据库访问文章,并在单个页面上写入结果。当要访问某篇文章时,我需要文章id,我只需要进入页面:当涉及参数时,如何在ASP.NET 4.0中指定url映射? 问题,asp.net,web-config,url-routing,asp.net-4.0,url-mapping,Asp.net,Web Config,Url Routing,Asp.net 4.0,Url Mapping,我有一个网站,里面有一些文章。使用数据库访问文章,并在单个页面上写入结果。当要访问某篇文章时,我需要文章id,我只需要进入页面:http://www.mysite/Articles.aspx?a={article id} 这很好,但不是很友好,也不可扩展。我想做的是重定向表单中的每个url:http://www.mysite/articles/{article id}转到页面http://www.mysite/Articles.aspx?a={article id} 我知道使用Web.Confi
http://www.mysite/Articles.aspx?a={article id}
这很好,但不是很友好,也不可扩展。我想做的是重定向表单中的每个url:http://www.mysite/articles/{article id}
转到页面http://www.mysite/Articles.aspx?a={article id}
我知道使用Web.Config
可以使用urlMappings
设置,但不知道如何在那里插入正则表达式
一些注释
请考虑我想要一个简单的翻译工具。我不想编辑现有页面。这个解决方案应该对我的应用程序组件尽可能透明
获得解决方案的最佳实践是什么?我认为您应该使用: 例如: &在“Articles.aspx.cs”上,您可以通过以下方式获得“article id”:
我认为你应该使用: 例如: &在“Articles.aspx.cs”上,您可以通过以下方式获得“article id”:
详细信息:如果Microsoft友好URL对您有好处,您是否可以使用
{article id}
。您不需要更改任何现有功能,只需添加包,然后向Global.asax文件添加一行即可。另外,所有其他Url都是干净的(即)。它适用于网站/表单,但不适用于网页(即Web矩阵) 解决方案:
- Site.Mobile.Master
- Site.Mobile.Master.designer.cs
- ViewSwitcher.ascx
- ViewSwitcher.ascx.designer.cs
更多信息的链接:
详细信息:如果Microsoft友好URL对您有好处,您是否可以使用
{article id}
。您不需要更改任何现有功能,只需添加包,然后向Global.asax文件添加一行即可。另外,所有其他Url都是干净的(即)。它适用于网站/表单,但不适用于网页(即Web矩阵) 解决方案:
- Site.Mobile.Master
- Site.Mobile.Master.designer.cs
- ViewSwitcher.ascx
- ViewSwitcher.ascx.designer.cs
更多信息的链接:
我正在检查,看起来不错!非常感谢,但不幸的是,我需要一些对我的页面透明的东西。我想让我的页面保持原样。我需要的是一个简单的翻译工具。您提供的解决方案(IIS重写)非常棒,但我的应用程序是托管的,我认为我无法在该组件的服务器上执行操作(我确信我不能)。还有其他方法吗?我想我可以使用asax解决方案,将所有内容重定向到route.aspx页面,该页面将转换参数并将内容重定向到正确的URL中。。。问题是。。。我的网站上的分析怎么办?这看起来像是我可以使用的东西,但仍然不清楚:/!请看我的问题:我正在检查,看起来不错!非常感谢,但不幸的是,我需要一些对我的页面透明的东西。我想让我的页面保持原样。我需要的是一个简单的翻译工具。您提供的解决方案(IIS重写)非常棒,但我的应用程序是托管的,我认为我无法在该组件的服务器上执行操作(我确信我不能)。还有其他方法吗?我想我可以使用asax解决方案,将所有内容重定向到route.aspx页面,该页面将转换参数并将内容重定向到正确的URL中。。。问题是。。。我的网站上的分析怎么办?这看起来像是我可以使用的东西,但仍然不清楚:/!请看一下我这里的问题:旁注-这是一个可伸缩的解决方案,不确定为什么您认为它不是旁注-这是一个可伸缩的解决方案,不确定为什么您认为它不是
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Articles",
"articles/{article-id}/",
"~/Articles.aspx");
}
string article-id = Page.RouteData.Values["article-id"] as string;