带/ JavaScript的MVC - 旅行路线

时间:2009-04-23 03:05:58

标签: asp.net-mvc routing

See the exception

我的母版页中有一个JS包含,似乎每次都会绊倒其中一条路线。

正在绊倒这条路线:

routes.MapRoute(
"CatalogType",
"Catalog/{group}/{type}/{index}/{browseSize}",
new { controller = "Catalog"
    , action = "Types"
    , group = ""
    , type = ""
    , index = ""
    , browseSize = "" }
);

我有什么办法可以阻止这种行为吗?

PS:我知道有一种方法可以对这些参数强制执行数据类型,但对于我的生活,我找不到参考。我在做梦吗?

2 个答案:

答案 0 :(得分:0)

查看异常,看起来您没有在服务器端正确解析javascript文件的虚拟路径(即〜/ bit最终被呈现给客户端而不是被解析为正确的应用程序absoluet路径)。如果你包含你的js文件,你想要包含它:

<script type="text/javascript" src="<%= Url.Content("~/scripts/swfobject.js") %>" ></script>

不喜欢这样:

<script type="text/javascript" src="~/scripts/swfobject.js" ></script>

答案 1 :(得分:0)

这是一个overview of route constraints

您还可以使用以下正则表达式:

routes.MapRoute("CatalogType", "Catalog/{group}/{type}/{index}/{browseSize}",
    new { controller = "Catalog", action = "Types", group = "", type = "", index = "", browseSize = "" },
    new { group = "\w+", browseSize = "\d+" }
);

我发现Phil Haack's route debugger对这类事情非常有用。