【问题标题】:ASP.NET MVC RoutingASP.NET MVC 路由
【发布时间】:2011-03-28 22:49:50
【问题描述】:

我遇到了这个奇怪的路由问题 - 我有 2 种路由到同一个视图。比如Simulator/RunStrategy/7Simulator/RunStrategy/7/1000

其中控制器和视图定义为 public ActionResult RunStrategy(int id, decimal sum).

当我使用短视图时,我会根据需要看到视图,当我使用长视图时 - 我把所有的“链接 href ....”都搞砸了。 如:

<link href="../../../css/global.css" rel="stylesheet" type="text/css" />

它应该在哪里:

<link href="../../css/global.css" rel="stylesheet" type="text/css" />

当我使用短路由链接时,确实显示正确。

路由表如下:

        routes.MapRoute(
            "Run Simulation",
            "Simulator/RunStrategy/{id}/{startingsum}",
            new { controller = "Simulator", action = "RunStrategy", id = "0", startingsum = "100000" },
            new { id = @"\d+", startingsum = @"^([0-9]*|\d*\.\d{1}?\d*)$" }
        );

在哪里可以正常工作。

我们将不胜感激。谢谢。

【问题讨论】:

  • 如何链接您的 CSS 文件?你在使用 Url.Content() 吗?
  • 我应该吗?我正在使用上面给出的直接链接(对于短途版本),由于某种原因,它被添加到长途路线中的“../”。
  • 你有没有想过简单地使用根路径,例如/themes/css/global.css?
  • 出于某种奇怪的原因,它不起作用。它需要那些“../../”才能工作——它确实应该接受根路径。为什么会这样?

标签: asp.net-mvc-2


【解决方案1】:

您应该尝试使用 Url.Content() 看看是否会有所作为。

例子:

<link href="<%=Url.Content("~/Content/Site.css")%>" rel="stylesheet" type="text/css" />

【讨论】:

  • 我试过那个 - 它给了我一个指向“/css/global.css”的链接,它应该是“../../css/global.css”
  • 顺便说一句 - 问题仅在于 CSS 文件。对于 JS 它工作正常。
  • 你的 global.css 文件的完整路径是什么?
  • 它位于带有 /css/global.css 的站点的根目录(即 /css/global.css) - 因为目录是标准 MVC 目录结构。
  • 如果 /css/global.css 是你文件的完整路径,并且 Url.Content() 输出 ,那么它应该适用于每个页面,因为它使用的是绝对 URL 而不是相对 URL。确定没有其他问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多