如何在{controller} / {action} / {id} asp.net mvc之前添加一些Text

时间:2015-10-31 08:23:35

标签: c# asp.net asp.net-mvc routing

我想改变这个

  

localhosht:3220 / myController的/ MyAction ID = 1

到这个

  

localhosht:3220 /会将myText / myController的/ MyAction ID = 1

即使在重定向,路由或其他情况下,它也可以随时工作。

感谢。

4 个答案:

答案 0 :(得分:0)

只需将文字添加到路线网址:

routes.MapRoute(
    name: "Default",
    url: "myText/{controller}/{action}"
);

答案 1 :(得分:0)

您可以使用自定义route来匹配您想要的uri。在RegisterRoutes的{​​{1}}方法中,添加以下内容。

此处的顺序非常重要,如果您在“MyText”路线之前添加“默认”路线,则 MyText 路线将不会被点击。

RouteConfig

答案 2 :(得分:0)

如果您的意图是使用url,那么添加myText/{controller}/{action}/{id}参数myText 您的默认路线)的路线肯定会有效通常,您可能还想看看areas的概念。

默认情况下,在Global.asax的{​​{1}}功能中,您可以调用该方法:

Application_Start()

这样做是为了在项目中查找特殊的AreaRegistration.RegisterAllAreas(); 文件夹,并在其下注册具有从Areas扩展的类的每个文件夹并覆盖AreaRegistration函数。与您的RegisterArea类似,此类可能如下所示:

RouteConfig.cs

注意:您可以通过 scaffolding 在MVC项目中创建区域:只需右键单击您的项目并public class MyTextAreaRegistration : AreaRegistration { public override string AreaName { get { return "MyText"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( name: "MyText_default", url: "MyText/{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } - > Add..。一切都会自动完成。

最后,Areas为您的Area需求提供了更持久的解决方案。有关详细文章,您可以查看this

答案 3 :(得分:0)

INotifyPropertyChanged

);

如果你想使用像myText这样的参数来使你的Url Seo友好,它会对你有用。