【问题标题】:ASP.NET MVC RoutingASP.NET MVC 路由
【发布时间】:2025-12-20 18:40:06
【问题描述】:

我有一个要求,允许用户使用友好的 url 搜索属性。我创建了这条路线

routes.MapRoute(
        "Search", // Route name
          "{controller}/{action}/refno/{refno}/status/{status}/proptype/{proptype}/locality/{locality}/pricefrom/{pricefrom}/priceto/{priceto}", // URL with parameters
         new { controller = "Property", action = "Search", refno = "0", proptype = "ANY TYPE", status = "ANY STATUS", locality = "ANY LOCALITY", pricefrom = "0", priceto = "NO LIMIT" }

并且请求 action="/Property/Search/refno/0/status/Converted/proptype/Airspace/locality/Any locality/pricefrom/0/priceto/No limit" 实际上正确调用了路线。

但是有一些奇怪的东西。当显示带有结果的搜索表单时,javascript 脚本标签将被忽略,因此某些通过 javascript 填充的下拉列表不会被填充。我的印象是我创建的路由实际上阻止了我在母版页中的脚本标签。

谁能帮帮我。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-routing


    【解决方案1】:

    您的浏览器正在查找与 URL 相关的 .js 文件。确保您的脚本标签使用 Url.Content("~/somepath/file.js") 引用您的 .js 文件。

    如果这不是问题,请确保您页面上的某个地方没有阻止其余部分执行的 javascript 错误。

    【讨论】:

      【解决方案2】:

      嗨, 首先感谢您的回复。肯定没有 JS 错误,因为在始终有效的用户控件上调用 JS 文件。

      我刚刚在 IIS express 上运行该网站以跟踪该网站。似乎正在完成正确的帖子,但随后在结果表单中请求 js 文件作为搜索帖子和 js 文件。

      例如....如果我发布到 /search/properties/refno/5/propstatus/finished,首先会发布正确的帖子,然后在呈现结果表单时,将对 /search 执行 GET 操作/properties/refno/5/propstatus/finished/jquery/jquery0.5.2.min.js 这是不正确的。

      让您了解我在做什么。这是用户控件。我只发布表单操作。现在我发布到静态路由只是为了测试。

      action="/Property/Search/refno/0/status/Converted/proptype/Airspace/locality/Any locality/pricefrom/0/priceto/No limit" method="post">

      这是母版页头js文件

       <script type="text/javascript" src="../../Scripts/jquery/001-jquery-1.4.2.min.js"></script>
       <script type="text/javascript" src="../../Scripts/jquery/jquery.lightbox-0.5.min.js"></script>
       <script type="text/javascript" src="../../Scripts/utils/jquery.markaf.mvc.utils.debug.js"></script>
       <script type="text/javascript" src="../../Scripts/ui/ui.search.debug.js"></script>
      

      这是控制器发布到的搜索表单

      搜索

      参考号:

      价格:

      ">阅读更多...

      【讨论】: