asp.net 4.0 web表单路由 – 默认/通配符路由
发布时间:2020-05-24 06:05:36 所属栏目:asp.Net 来源:互联网
导读:当我使用ASP.NET 4.0路由与Web窗体来生成一个可以作为某种通配符的路由时,我有一个简单的方法? 在我看来,在WebForms中,您必须为每个页面指定一个路由 – 我正在寻找某种通用路由,可以在没有特定要求的地方使用,可能直接从路径映射到路径,所以… http://somed
|
当我使用ASP.NET 4.0路由与Web窗体来生成一个可以作为某种通配符的路由时,我有一个简单的方法? 在我看来,在WebForms中,您必须为每个页面指定一个路由 – 我正在寻找某种通用路由,可以在没有特定要求的地方使用,可能直接从路径映射到路径,所以… http://somedomain.com/folder1/folder2/page可能会映射到folder1 / folder2 / page.aspx 有什么建议么? 谢谢 解决方法您可以匹配所有剩余的路线,如下所示:routes.MapPageRoute("defaultRoute","{*value}","~/Missing.aspx");
在这种情况下,我们知道所有的路线,并想要发送任何其他的“缺少”/ 404页面.只要确保将其作为最后一条路线,因为它是一个通配符,并且将捕获所有内容. 或者,您可以以相同的方式注册路由,但内部映射到页面,如下所示: routes.Add(new Route("{*value}",new DefaultRouteHandler()));
该处理程序类将执行通配符映射,如下所示: public class DefaultRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
//Url mapping however you want here:
var pageUrl = requestContext.RouteData.Route.Url + ".aspx";
var page = BuildManager.CreateInstanceFromVirtualPath(pageUrl,typeof(Page))
as IHttpHandler;
if (page != null)
{
//Set the <form>'s postback url to the route
var webForm = page as Page;
if (webForm != null)
webForm.Load += delegate { webForm.Form.Action =
requestContext.HttpContext.Request.RawUrl; };
}
return page;
}
}
这是有点奇怪的地方,以防止水平滚动,但你得到的总体来说.再次,确保这是最后一条路线,否则它将处理所有的路线. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何使用wmd-editor控件检索markdown和html
- 如何从asp.net中的javascript调用codebehind函数?
- asp.net-mvc – 无法使用IIS Express在Windows 10上运行Web
- asp.net – 使用ModalPopupExtender而不必设置TargetContro
- ASP.NET:Viewstate并以编程方式添加用户控件
- ASP.NET Web API请求完成后如何处置资源?
- asp.net – bing地图花钱?
- asp.net – HttpHandler 101失败
- asp.net – Mono apache2 =服务暂时不可用(503)
- asp.net – 使用Visual Studio 2017在.NET Core解决方案上没
推荐文章
站长推荐
热点阅读
