【发布时间】:2015-04-08 16:02:33
【问题描述】:
我有问题
我正在尝试设置以下路线:
routes.MapRoute(
name: "PublicForms",
url: "Public/Form/{*parameters}",
defaults: new { controller = "Form", action = "Index", parameters = UrlParameter.Optional}
);
但它只在我传递多个参数时才有效
例子:
http://localhost:12982/Public/Form/aaa/bbb 工作
public ActionResult Index(string parameters)
{
// parameter comes aaa/bbb
}
http://localhost:12982/Public/Form/aaa 不起作用。
它返回一个 404
不应该吗?
public ActionResult Index(string parameters)
{
// parameter comes aaa
}
日
【问题讨论】:
-
参数前好像有个动作。通常我们使用“/”来分隔域项而不是参数。通常在 aspx 中,这是我们传递两个参数 "contoso.com/products.aspx?field1=value1 &field2=value2" 的方式。 & 符号分隔参数,但不分隔“/”。此 url 的最简单含义是“转到 contoso.com 并找到 product.aspx 文件以将其打开。在请求时使用 field1 和 field2 参数”。我认为这会帮助你
-
嗨@Sandaru,我正在尝试执行本文中关于“处理 URL 模式中可变数量的段”主题的内容。 msdn.microsoft.com/en-us/library/… 但 with 不能只使用一个参数。
-
您还有其他路线吗?只看一条路由是不可能调试路由问题的,你需要把它们作为一个整体来看待。
-
在这种情况下,您是否尝试通过清除缓存内存,或者使用单独的浏览器启动它,看看它是否工作。
标签: asp.net-mvc model-view-controller routing routes