2023-02-17 473
我想从我的URL中删除控制器名称(对于一个特定的控制器).例如:
http://mydomain.com/MyController/MyAction
我希望将此URL更改为:
http://mydomain.com/MyAction
如何在MVC中完成这件事?我正在使用MVC2,如果无论如何都可以帮助我.
您应该在global.asax中映射新路由(在默认为默认为1之前添加),例如:
routes.MapRoute("SpecificRoute", "{action}/{id}", new {controller = "MyController", action = "Index", id = UrlParameter.Optional});
// default route
routes.MapRoute("Default", "{controller}/{action}/{id}", new {controller = "Home", action = "Index", id = UrlParameter.Optional} );
要更新2016/17/18 – 这是最好的方法是使用属性路由.
在routeconfig.cs中这样做的问题是旧路线也将仍然工作 – 所以你将拥有
和
对同一页面的多个路由对SEO不好 – 可以导致路径问题,并在您的应用程序中创建僵尸页面和错误.
具有属性路由,您避免了这些问题,看到哪些路由在哪里更容易.您所要做的就是将其添加到rateconfig.cs(可能在其他路由可能匹配之前的顶部):
routes.MapMvcAttributeRoutes();
然后将路由属性添加到具有路由名称的每个操作,例如
[Route("MyAction")]
public ActionResult MyAction()
{
...
}
以下是从homecontroller删除控制器名称的步骤
步骤1:
创建路由约束.
public class RootRouteConstraint<T> : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
var rootMethodNames = typeof(T).GetMethods().Select(x => x.Name.ToLower());
return rootMethodNames.Contains(values["action"].ToString().ToLower());
}
}
步骤2:
在默认映射上添加新的路由映射,该映射使用我们刚刚创建的路由约束.通用参数应该是您计划用作”根”控制器的控制器类.
routes.MapRoute(
"Root",
"{action}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { isMethodInHomeController = new RootRouteConstraint<HomeController>() }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
现在您应该可以访问您的家庭控制器方法,如下所示:
example.com/about,
example.com/contact
这将仅影响HomeController.所有其他控制器都有默认的路由功能.
以上所述是小编给大家介绍的ASP.NET MVC-从URL中删除控制器名称,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/34267.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态