C# routes.maproute
我有一个问题,这是我第一次使用routes.maproute,我的逻辑路由有问题 我有以下代码:C# routes.maproute,c#,sql,asp.net-mvc-4,asp.net-mvc-routing,C#,Sql,Asp.net Mvc 4,Asp.net Mvc Routing,我有一个问题,这是我第一次使用routes.maproute,我的逻辑路由有问题 我有以下代码: { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id
{
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中查看的注释(但这不是我想要的)
你能帮我吗
错误是,我无法转到我想要的路由,因为我看不到将comprovaciones路径(如url:“{controller}/{action}/{id}”)放在适当位置的逻辑,因此它们可以转到我想要的位置(这在每个MapRoute的注释中都有说明)
例如在路线上:注册
当用户输入一个路径,例如://localhost:27105/Home/FichaRegistros/29200604-BCF7-4534-8DE9-00049D41A3E0时,我希望这样
这会让我转到菲查雷吉斯特罗斯
位于控制器Repositoro中
恢复行动
并且需要有身份证
(注意:我首先使用默认路由只是为了尝试,也为了查看URL,我知道,然后我将其放在了末尾)好的,我有一个解决方案:
在routes.MapRoute中,我们配置为url:
url:“/home/FichaRegistros/”
因为我们希望在url指向正确的位置时“捕获”
然后我们定义我们希望它如何行动:
默认值:新建{controller=“Records”action=“Index”}
有指示我们要转到控制器记录到操作索引
通过这种方式,我们可以捕获所需的cualquer路由,并将其发送给控制器和所需的操作:
同样,如果URL指示:
url:{controller}/{action}/“
我们表示我们想要抓取任何控制器和任何动作,也就是说:
如果url为:localhost:45663/CCCC/yyy/XXXX
routes.MapRoute,将CCC解释为控制器,愤怒地寻找我们的程序,
与interara在控制器AAA CCC内寻找动作的方式相同
并将其作为参数XXX
devemos查看我们放置这些“过滤器”的顺序,因为例如,如果我们放置过滤器:
url:“/home/Cars/”
然后为其添加一个过滤器
url:“/home/Cars/FichaRegistros/”
永远不要进入FICHAREGISTROS页面,因为1通过了过滤器启动/车辆以及如何通过,它捕获并显示不再查看是否有任何更具体的内容,好像只查看条件是否满足,而不注意是否有更详细的内容
关于{}中列出的变量
例如:
url:{controller}/{action}/“
在这里,我们也访问一个控制器,一个作为Internameta的操作保存在变量{controller}中,驱动程序名i保存在变量{action}中,该操作的名称,然后使用它们在程序中定位驱动程序和相应的操作
我们还可以添加它们自己的变量,具体情况如下:
url:“{controller}/{action}/{ID}”
在这种情况下,我们已经创建了变量或参数ID,您可以在控制器操作中使用它,我们将使用这个routes.MapRoute,记住,变量中的操作必须调用,就像我们在这里指出的那样
它们也可以是不总是必需的变量,以便在相同条件之间是否存在任何变量,表明:
默认值:新建{action=“IsNotLogged”id=UrlParameter.Optional}
通过这种方式,我们表明我们创建的ID参数是可选的,如果不指示solo part entraria UrlParameter。在这种情况下,当go时是可选的,如果没有,将跳转到下一个检查
很抱歉延迟回答,但他们认为如果不是davais,我的问题会有一个解决方案,如果……否则我不会指出他有什么问题,并且我已经解决了请告诉我们你有什么错误,你可以添加到你的问题中,你期望得到什么结果,你会得到什么样的错误?错误是我无法进入我所选择的路线ant因为我看不到逻辑,所以不能很好地将comprovaciones路径像url:“{controller}/{action}/{id}”,所以它们可以放在我想要的地方(这在每个MapRoute的注释中都有说明,例如在route:Registration上,当用户输入路径如://localhost:27105/Home/FichaRegistros/29200604-BCF7-4534-8DE9-00049D41A3E0时,我希望将我重定向到控制器Repositoro action Repositorio中的FichaRegistros,并具有所需的id bot问题和答案都是无用的