Asp.net mvc 4 MVC路由-将参数组合到行动中?

Asp.net mvc 4 MVC路由-将参数组合到行动中?,asp.net-mvc-4,asp.net-mvc-routing,Asp.net Mvc 4,Asp.net Mvc Routing,是否可以采用以下路径: /报告/{controller}/{reportType}/{report} 并将其转化为: /报告/{controller}/{reportType report} 其中reportType report是一种操作方法?我们希望这样做的原因是为了身份验证。我们需要将每个报告限制为特定的用户,这可以在每个操作方法的基础上进行。如果您试图在每个操作的基础上进行限制,为什么不利用authorized属性 这正是我要说的。对,我们正在使用authorized属性。我的问题涉及如

是否可以采用以下路径:

/报告/{controller}/{reportType}/{report}

并将其转化为:

/报告/{controller}/{reportType report}


其中reportType report是一种操作方法?我们希望这样做的原因是为了身份验证。我们需要将每个报告限制为特定的用户,这可以在每个操作方法的基础上进行。

如果您试图在每个操作的基础上进行限制,为什么不利用authorized属性

这正是我要说的。对,我们正在使用authorized属性。我的问题涉及如何发送请求。如何请求/reports/reportController/type1/aReport并最终调用与该报告相关的特定操作方法,以便使用authorized属性?我是MVC新手,所以我不确定我问的是否正确。如果你想这样做,“aReport”将填充默认路由的id部分。老实说,我不是100%清楚你在问什么。您的路由是否看起来像:“reports/{controller}/{action}/{id}”?我们希望避免将aReport作为一个id,因为它不可能基于报告限制访问(使用authorize属性),对吗?假设不能这样做,有没有一种方法可以让URL采用这种格式,但对每个报告都有一个特定的操作方法?因此,当您请求/reports/reportController/type1/aReport时,它被绑定到特定的方法,而不是在type1方法中将aReport作为id。很抱歉让这件事变得困难。需要输入1吗?现在这就是行动。我不理解type1的上下文,所以不知道。您可以使用reports/{controller}/type1/{Action}/{id}并将id设置为可选的(换句话说,省略它)。如果typex很重要,您必须为每个typex创建路由。方法名称中不允许使用“-”字符,因此您将无法以这种格式的名称作为操作的目标。同样,依赖操作名称进行授权似乎不是一个好主意。使用@Mike Cheel建议的
authorized属性