【发布时间】:2015-02-06 09:48:29
【问题描述】:
配置路线:
routes.MapRoute(
name: "RedirectToProduct",
url: "product/page/p{productId}/{shortName}",
defaults: new { controller = "Product", action = "RedirectToProduct", shortName = UrlParameter.Optional }
);
动作方法:
public class ProductController : Controller
{
public async Task<ActionResult> RedirectToProduct(string productId, string shortName)
{
}
}
问题..
- 当我点击 url http://localhost:1234/product/page/p1185/ 时,我就是 在控制器的操作方法中调用
- 但是当我点击 url http://localhost:1234/product/page/p118.5 时,我是 没有在控制器的操作方法中调用。我看到 HTTP 错误 404.0 - 未找到(请参阅 productId 中有 DOT (.)。)
我想要的是 - 无论我在最后添加 DOT (.) 还是不在 productUd 参数中,调用都应该在控制器的操作方法中。
提前致谢!
【问题讨论】:
-
在该路由之前定义的任何其他可能会干扰的路由?
-
没有@DanielJ.G.,只定义了2条路线。这是第一个,然后是默认的。
-
感觉你的问题和描述有冲突。
-
感谢@dotnetstep,标题已编辑。
-
应该可以正常工作。刚刚尝试过,一切都在这里工作。你有一个模拟问题的测试项目?
标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4