asp.net-mvc – ASP.net MVC支持带有连字符的URL
发布时间:2020-05-23 07:18:51 所属栏目:asp.Net 来源:互联网
导读:有一个简单的方法可以让MvcRouteHandler将传入URL的动作和控制器部分中的所有连字符转换为下划线,因为方法或类名中不支持连字符。 这将是我可以支持这样的结构,如sample.com/test-page/edit-details映射到Action edit_details和controller test_pagecontrol
|
有一个简单的方法可以让MvcRouteHandler将传入URL的动作和控制器部分中的所有连字符转换为下划线,因为方法或类名中不支持连字符。 这将是我可以支持这样的结构,如sample.com/test-page/edit-details映射到Action edit_details和controller test_pagecontroller,同时继续使用MapRoute方法。 我知道我可以指定一个动作名称属性和支持连字符在控制器名称,手动添加路由实现这,但我正在寻找一个自动化的方式,以便在添加新的控制器和操作时保存错误。 解决方法C#版本的约翰的帖子任何人谁喜欢它: C# and VB version on my blogpublic class HyphenatedRouteHandler : MvcRouteHandler{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
requestContext.RouteData.Values["controller"] = requestContext.RouteData.Values["controller"].ToString().Replace("-","_");
requestContext.RouteData.Values["action"] = requestContext.RouteData.Values["action"].ToString().Replace("-","_");
return base.GetHttpHandler(requestContext);
}
}
…和新路线: routes.Add(
new Route("{controller}/{action}/{id}",new RouteValueDictionary(
new { controller = "Default",action = "Index",id = "" }),new HyphenatedRouteHandler())
);
你可以使用下面的方法,但要记住,你需要命名视图My-Action,如果你喜欢让visual studio自动生成你的视图文件,这可能很讨厌。 [ActionName("My-Action")]
public ActionResult MyAction() {
return View();
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Application_Start不被ASP.NET网页应用程序打中
- asp.net-mvc – 使用LINQ进行动态查询将无法正常工作
- asp.net-mvc – 如何在mvc网格格式中格式化日期
- asp.net-mvc – 使用Razor在ASP.NET MVC 4中防止@ Html.Lab
- asp.net-mvc – 使用与本地化更改冲突的自定义数据注释进行
- asp.net – 在Azure网站上启用gzip压缩
- 在ASP.NET mvc 4中使用Ninject时是否需要控制器工厂
- 从代码隐藏调用ASP.NET Web API
- ASP.NET缓存 方法和最佳实践
- asp.net-mvc – ASP.NET MVC HandleError不工作(customErro
推荐文章
站长推荐
热点阅读
