routes.maproute

routes.maproute

我有一个问题,这是我第一次使用 routes.maproute,我有一个逻辑问题

我有这个代码:

{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
     name: "Default",
     url: "{controller}/{action}/{id}",
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    //Ruta por defecto   --> pa' pruebas
    );



    routes.MapRoute(
      name: "Registro",
      url: "{controller}/{action}/{box}/{reg}"
      //defaults: new { controller = "Repositorio", action = "Registro" }
      //localhost:27105/Home/FichaRegistros/29200604-BCF7-4534-8DE9-00049D41A3E0-->FichaRegistros   -->Repositorio/Registro + id OBLIGATORIA
    );

    routes.MapRoute(
      name: "Repositorio",
      url: "{controller}/{action}/{box}"
      //defaults: new { controller = "Repositorio", action = "Repositorio", }
      //localhost:27105/User/Repositorio/378CE0F6-440A-4C63-BF08-08F760B4840B --> Repositorio  -->Repositorio/Repositorio + id OBLIGATORIA
    );
    routes.MapRoute(
        name: "IsNotLogged",
        url: "{controller}/{action}/{id}",
        defaults: new { action = "IsNotLogged", id = UrlParameter.Optional }
        //localhost:27105/Home/Index   -->   Home/Index -->Repositorio/IsNotLogged
    );
    routes.MapRoute(
        name: "IsLogged",
        url: "{controller}/{action}/{id}",
        defaults: new { action = "IsLogged", id = UrlParameter.Optional }
        //localhost:27105/User/Index  -->  User/Index  -->Repositorio/IsLogged
    );
    routes.MapRoute(
      name: "Localhost",
      url: "{controller}/{action}/",
      defaults: new { controller = "Repositorio", action = "LocalHost" }
      //localhost:27105/   -->User/Login   -->Repositorio/LocalHost
    );
}

但是我无法正常工作

每个 MapRoute 有 4 个项目: 名称(与 maproute 相同) url(在 MapRoute 中检查 url) 默认值(仅在必要时) 在这个 maproute 中看到我想要的评论(但这不是我想要的)

可以帮我吗?

错误是我没有去到我想要的路线,因为我没有看到像 url: "{controller} / {action} / {id }”,所以他们去我想去的地方(在每个 MapRoute

的评论中指出

例如在路线上:注册 我希望当用户输入如下路径时:// localhost: 27105 / Home / FichaRegistros / 29200604-BCF7-4534-8DE9-00049D41A3E0

这会将我重定向到 FichaRegistros 位于控制器 Repositoro 行动资料库 并且有一个 id REQUIRED

(注意:我首先使用默认路由只是为了尝试,也看到了 URL,我知道然后我把它放在最后)

好的,我有办法:

在routes.MapRoute中,我们配置为url: url: "/home/FichaRegistros/" 因为我们要"capture"当url点好。

然后我们定义我们想要的行为方式: 默认值:新{controller = "Records" action = "Index"}

有提示我们要到控制器记录action INDEX

这样我们就可以捕获我们需要的 cualquer 路由并将其发送到我们想要的控制器和操作:

如果 URL 表示相同的方式: url: "{controller} / {action} /"

表示我们要抓取任意控制器和任意动作,也就是说: 如果 url 是:localhost: 45663 / CCCC / YYYY / XXXX routes.MapRoute,将CCC解释为控制器并愤怒地寻找我们的程序, 与 interara 在控制器 AAA CCC 中寻求行动的方式相同 并作为参数 XXX

devemos 查看我们放置这些 "filters" 的顺序,因为例如我们放置一个过滤器: url: "/家/汽车/" 然后添加一个过滤器 url: "/home/Cars/FichaRegistros/"

永远不会到达 FICHAREGISTROS 页面,因为 1 通过过滤器 start / cars 以及如何通过那里,它捕获并且 sige 不再寻找是否更具体,就好像只是寻找满足条件, 有没有更详细的不通知

关于{}中列出的变量 例如: url: "{controller} / {action} /" 这里我们要么访问一个controller,一个action anyone as internamenta 保存在变量{controller} 变量{action} 中的驱动程序名称i 动作的名称然后使用它们来定位驱动程序和相应的动作我们的节目

我们也可以像podira这样添加自己的变量: url:“{controller} / {action} / {ID}”

在这种情况下,我们已经创建了变量或参数 ID,您可以在控制器操作中使用它 routes.MapRoute,请记住变量内的操作有像我们在这里指出的那样打电话

它们也可以是不总是需要的变量,所以是否有任何,在相同的条件之间,表示: 默认值:新{action = "IsNotLogged" id = UrlParameter.Optional}

通过这种方式,我们表明我们创建的ID参数是可选的,如果没有indicaramos the solo part entraria UrlParameter.Optional 在这种情况下,如果没有,就会跳转到下一张支票

抱歉延迟回答,但嘿,如果 davais 没有解决我的问题,如果......否则我没有指出他遇到的问题以及我已经解决的问题