约束我有一个下单在Linux上运行的应用程序MVC3。 我有这样的路线:.NET单MVC3路线可选parametr
routes.MapRoute(
"search",
@"search/{term}",
new {
controller = MVC.Mobile.Name,
action = MVC.Mobile.Actions.ActionNames.Search,
term = UrlParameter.Optional
},
new {
term = @"^[0-9]*$"
}
);
其工作正常在窗口两者当我显示术语参数(例如/搜索/ 123)或内部消除(例如/搜索)。现在,在我将它部署到Linux上后,问题就出现了:它为无路径(例如/ search)的路由返回404,并且与term(例如/ search/123)一起正常工作。
我结束了分裂这条路线分为两个:
routes.MapRoute(
"search-empty",
@"search",
new {
controller = MVC.Mobile.Name,
action = MVC.Mobile.Actions.ActionNames.Search
}
);
routes.MapRoute(
"search",
@"search/{term}",
new {
controller = MVC.Mobile.Name,
action = MVC.Mobile.Actions.ActionNames.Search
},
new {
term = @"^[0-9]*$"
}
);
我也试图与REG EXP发挥和定义的默认值,而不是可选的参数项没有任何成功。 是否有人知道它为什么在Windows上工作,而不是在Linux上?