当前位置: 移动技术网 > IT编程>开发语言>c# > MVC设定默认路由为指定的Area下的某个action

MVC设定默认路由为指定的Area下的某个action

2019年07月18日  | 移动技术网IT编程  | 我要评论
mvc中,一般的情况下,使用ide工具帮我们生成的代码,在路由注册的时候: public static void registerroutes(routecoll

mvc中,一般的情况下,使用ide工具帮我们生成的代码,在路由注册的时候:

public static void registerroutes(routecollection routes)
    {
      routes.ignoreroute("{resource}.axd/{*pathinfo}");
      routes.maproute(
        name: "default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "webshow", action = "list", id = urlparameter.optional }
      );     
    }

默认给的路由地图 我们在default:中去配置 默认是又那个控制器返回action。

这样形如: 这样,会默认使用默认的view文件夹中去找对应的响应model页面;

但是当项目规模庞大,使用了mvc提供的area模块快的规划,又要让area块下某一个页面作为默认页面时,那就需要把route默认的路由去转到我们指定area下;要用到routecollection 的datatokens方法。

举个例子:area下有注册一个admin块

public class adminarearegistration : arearegistration
  {
    public override string areaname
    {
      get
      {
        return "admin";
      }
    }
    public override void registerarea(arearegistrationcontext context)
    {
      context.maproute(
        "admin_default",
        "admin/{controller}/{action}/{id}",
        new { controller = "login", action = "index", id = urlparameter.optional } //默认路径是login控制器,和index action
      );
    }
  }

如果要让默认到admin下指定的。那么registerroutes方法需要给routes路由到area 下的admin块;

public static void registerroutes(routecollection routes)
    {
      routes.ignoreroute("{resource}.axd/{*pathinfo}");
      routes.maproute(
         "default",
        "{controller}/{action}/{id}",
        new { controller = "login", action = "index", id = urlparameter.optional }, //这里要和admin块下的默认控制器和action一样
        new[] { "gta.cms.site.web.areas.admin.logincontroller" }// 这个是你控制器所在命名空间
      ).datatokens.add("area","admin");     
    }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对移动技术网的支持。如果你想了解更多相关内容请查看下面相关链接

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网