【发布时间】:2011-01-09 03:05:30
【问题描述】:
有没有办法让多个动作具有不同的参数?我已经看到它使用HttpPost 动词标志,但它似乎在其他地方对我不起作用。
当前对控制器类型 FoldersController` 的操作 List 的请求在以下操作方法之间不明确。
public ActionResult List()
{
//...
}
public ActionResult List(DateTime start)
{
// ...
}
public ActionResult List(string key)
{
// ....
}
尝试我在...上找到的这个 Route 参数
我仍然对路由的工作方式有些困惑。这就是我到目前为止所拥有的。 ASP.NET MVC Routing Via Method Attributes
但我仍然得到模棱两可的错误。这对我来说没有多大意义——它们是两条完全不同的路线——它应该确切地知道要调用哪个 ActionResult。但它并没有这样做......
[UrlRoute(Path = "List/Days/{days}")]
[UrlRouteParameterConstraint(Name = "days", Regex = @"\d+")]
public PartialViewResult List(int days)
{
return PartialView("List", Folders.List());
}
[UrlRoute(Path = "List/Rings/{ring}")]
[UrlRouteParameterDefault(Name = "ring", Value = "all")]
public PartialViewResult List(string ring)
{
return PartialView("List", Folders.List());
}
【问题讨论】:
-
关于 UrlRoute 的东西 1) 不喜欢它 2) 你是在调用库提供的路由注册东西吗(这会解释它不起作用)?
-
// 从它们的属性中注册任何其他路由。 RouteUtility.RegisterUrlRoutesFromAttributes(routes);在 global.asax 文件中。
-
我不确定您所说的“调用库提供的路由注册内容”是什么意思。我试图弄清楚如何直接从 registerroutes 方法映射路线,只是到达那里的过程很慢......
-
在你链接的东西中,有一个 RouteUtility.RegisterUrlRoutesFromAttributes(routes); - 只是检查被称为 UrlRoute 属性的东西没有它就没有任何意义[这将解释行为没有变化]。
-
那么你有那个了,那两条路线还没有被接上?您是否已将已注册的路线转出以查看它们是否确实在其中?
标签: .net asp.net-mvc asp.net-mvc-routing