无法让ViewContext.RouteData.Values [“Controller”]为我工作

时间:2013-03-20 21:28:55

标签: asp.net-mvc-4

我做错了什么,我知道的很多。 :)我试图在页面上显示一个简单的面包屑。我有这个观点:

@if (ViewContext.RouteData.Values["Action"].ToString() == "Index")
{
    <li>
        // This displays "Matter"
        @ViewContext.RouteData.Values["Controller"]
    </li>
}
else
{  
    <li>
        // This displays a hyperlink "Matter", 
        // but the Href goes to "MyApp/Matter/Matter"
        <a href="@ViewContext.RouteData.Values["Controller"].ToString()">
            @ViewContext.RouteData.Values["Controller"]
        </a>
    </li>
}

在上面的场景中,我将Route.cs文件设置为“MyApp / Matter”,这对应于我的“MatterController”上的“索引”操作。

单击该链接将显示“MyApp / Matter / Matter”,但不起作用。

关于如何让它发挥作用的任何想法?

1 个答案:

答案 0 :(得分:0)

您正在锚标记中设置相对路径。它正在评估:

  <a href="Matter">Matter</a>

那个(物质)被附加到你当前的URL,在这种情况下,我只能假设是“MyApp / Matter”。结果是“MyApp / Matter / Matter”。

您需要指定绝对URL或更完整的相对URL - ../Matter在这种情况下可以使用。

除此之外,如果不了解你正在尝试做什么,我无法帮助你。

  1. 你想要哪个面包屑拿走它们?关于他们正在看什么的面包屑中有什么?
  2. 您的示例中的MyApp是包含应用程序的目录还是应用程序中的某个区域?
  3. 我只能认为Matter是控制者,但是行动是什么?如果您显示的是链接,那么它当前没有查看“索引”操作。