MVC3路由干扰JS路径

时间:2011-06-09 14:48:00

标签: asp.net-mvc-3 razor routes

我定义了以下路线:

routes.MapRoute(name: "StateResults", url: "{state}/{searchTerm}", defaults: new { controller = "Results", action = "SearchState" });

在我的一个共享chtml文件中,我定义了以下内容:

 <script src="@Url.Content("Scripts/jquery-1.5.1.js")" type="text/javascript"></script>

我理解为什么JS没有加载,但我该如何解决这个问题呢?我绕过这个?

感谢。

2 个答案:

答案 0 :(得分:1)

你可以ignore routes for JS

IgnoreRoute("{file}.js");

作为替代方法,您可以使用约束参数来避免以js

结尾的文件
routes.MapRoute("StateResults", "{state}/{searchTerm}",
    new { controller = "Results", action = "SearchState" },
    new { searchTerm = @".*?([^js])$" }); // regex not tested

RouteCollectionExtensions.MapRoute Method (RouteCollection, String, String, Object, Object) from MSDN

constraints
    Type: System.Object
    A set of expressions that specify values for the url parameter.

答案 1 :(得分:0)

您需要设置忽略.js文件的路由。

这里有一个很好的描述: http://weblogs.asp.net/rashid/archive/2009/04/03/asp-net-mvc-best-practices-part-2.aspx

这样的事情会起到作用:

routes.IgnoreRoute("{file}.js");