Asp.Net MVC中,如何设置不同参数名称的路由?

更新于
2026-07-27 06:13:22
17阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计381个文字,预计阅读时间需要2分钟。

Asp.Net MVC中,如何设置不同参数名称的路由?

我正在尝试创建一些反射来生成自动的Urls,看起来像是以下代码块的Admin/Controller/Action/Param部分,使用了@Url.Action(action, controller, new { Id=param })和@Url.Action(动作, 控制器, 动作控制器)。

我正在尝试映射某些路由,以便自动生成的Urls看起来像
这两个代码块的Admin / controller / action / param,
@ Url.Action(“action”,“controller”,new {id =“param”})和
@ Url.Action( “行动”, “控制器”,新的{类型= “参数”})

我所做的是在区域注册中的以下内容,

context.MapRoute( "Admin_default", "Admin/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional }, new string[] { "namespaces" }); context.MapRoute( "Admin_type", "Admin/{controller}/{action}/{type}", new { action = "Index", type = UrlParameter.Optional }, new string[] { "namespaces" });

当参数名称为id时,生成的url是预期的,但是当参数名称是type,而不是controller / action / typevalue时,它会生成类似controller / action /?type = typevalue的内容

有没有办法生成像控制器/动作/类型值的url保持Admin_default路由的生成器行为完整?

when parameter name is id, url generated is as expected, but when
parameter name is type, instead of controller/action/typevalue, it
generates something like controller/action/?type=typevalue

发生这种情况是因为第一条路线用于映射网址(ID是可选的).

Asp.Net MVC中,如何设置不同参数名称的路由?

您可以尝试为路线添加一些约束.我猜你的id参数是一个整数,type参数是一个字符串.在这种情况下,您可以尝试使用此路线:

context.MapRoute( "Admin_default", "Admin/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional }, new { id = @"\d+" }, new string[] { "namespaces" }); context.MapRoute( "Admin_type", "Admin/{controller}/{action}/{type}", new { action = "Index", type = UrlParameter.Optional }, new string[] { "namespaces" });

您可以找到有关路线约束here的更多信息.

标签:AS

本文共计381个文字,预计阅读时间需要2分钟。

Asp.Net MVC中,如何设置不同参数名称的路由?

我正在尝试创建一些反射来生成自动的Urls,看起来像是以下代码块的Admin/Controller/Action/Param部分,使用了@Url.Action(action, controller, new { Id=param })和@Url.Action(动作, 控制器, 动作控制器)。

我正在尝试映射某些路由,以便自动生成的Urls看起来像
这两个代码块的Admin / controller / action / param,
@ Url.Action(“action”,“controller”,new {id =“param”})和
@ Url.Action( “行动”, “控制器”,新的{类型= “参数”})

我所做的是在区域注册中的以下内容,

context.MapRoute( "Admin_default", "Admin/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional }, new string[] { "namespaces" }); context.MapRoute( "Admin_type", "Admin/{controller}/{action}/{type}", new { action = "Index", type = UrlParameter.Optional }, new string[] { "namespaces" });

当参数名称为id时,生成的url是预期的,但是当参数名称是type,而不是controller / action / typevalue时,它会生成类似controller / action /?type = typevalue的内容

有没有办法生成像控制器/动作/类型值的url保持Admin_default路由的生成器行为完整?

when parameter name is id, url generated is as expected, but when
parameter name is type, instead of controller/action/typevalue, it
generates something like controller/action/?type=typevalue

发生这种情况是因为第一条路线用于映射网址(ID是可选的).

Asp.Net MVC中,如何设置不同参数名称的路由?

您可以尝试为路线添加一些约束.我猜你的id参数是一个整数,type参数是一个字符串.在这种情况下,您可以尝试使用此路线:

context.MapRoute( "Admin_default", "Admin/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional }, new { id = @"\d+" }, new string[] { "namespaces" }); context.MapRoute( "Admin_type", "Admin/{controller}/{action}/{type}", new { action = "Index", type = UrlParameter.Optional }, new string[] { "namespaces" });

您可以找到有关路线约束here的更多信息.

标签:AS