首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC: RouteConfig默认操作

ASP.NET MVC: RouteConfig默认操作
EN

Stack Overflow用户
提问于 2018-06-29 14:28:17
回答 1查看 1.2K关注 0票数 0

我是ASP.NET MVC的新手,在我为实习构建一个生产项目之前,我将遵循一个在线教程来构建一个示例项目。

在这个项目中,我们遵循基本的MVC脚手架,并创建两个不同的控制器。第一个控制器是默认的HomeController,它显示一个页面,不管网址是:

  • example.com
  • example.com/home
  • example.com/home/index

我推断这是因为在RouteConfig文件中,defaults:参数列出了controller="home", "action="index"

但是,在创建自己的控制器并使用routes.MapRoute以与HomeController完全相同的格式映射到它的路由之后:

代码语言:javascript
复制
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });

        routes.MapRoute(
            name: "Process",
            url: "Process/{action}/{id}",
            defaults: new { controller = "Process", action = "List", id = UrlParameter.Optional });

只有当我指定example.com/process/list时,新的路径才能工作,而如果省略了"/list“,则默认为example.com/process/list。

在普通的HomeController模板中是否有什么特殊的东西,它定义了在不同URL上返回的相同页面?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 14:32:04

这是因为你的路线的顺序。example.com/process与您的第一个路由(“默认”)匹配,因此它将操作"Index“作为默认值。您可以交换路由注册,然后它将选择“进程”路由与“列表”操作。阅读这篇文章以了解路由是如何工作的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51103965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档