ASP.NET MVC-C#-定义在Razor视图中使用的键值对

ASP.NET MVC-C#-定义在Razor视图中使用的键值对,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我有一个ASP.NETMVC应用程序。我的应用程序需要显示代表用户在应用程序中位置的面包屑。为了做到这一点,我希望在主布局页面中有如下内容: @foreach(var link in ViewBag["Links"]) { <div>|</div> <a href="@link.url">@link.text</a> } 我不明白为什么我会这样。我是否走上了创建面包屑的正确道路?如果没有,什么方法更好?您需要将ViewBag[“链接”]转

我有一个ASP.NETMVC应用程序。我的应用程序需要显示代表用户在应用程序中位置的面包屑。为了做到这一点,我希望在主布局页面中有如下内容:

@foreach(var link in ViewBag["Links"])
{
  <div>|</div>
  <a href="@link.url">@link.text</a>
}
我不明白为什么我会这样。我是否走上了创建面包屑的正确道路?如果没有,什么方法更好?

您需要将ViewBag[“链接”]转换到您的字典,以便foreach知道迭代什么

@foreach(var link in (IDictionary<string, string>)ViewBag["Links"])
@foreach(IDictionary)视图包[“Links”]中的变量链接)
您需要将ViewBag[“链接”]强制转换到您的字典,以便foreach知道迭代什么

@foreach(var link in (IDictionary<string, string>)ViewBag["Links"])
@foreach(IDictionary)视图包[“Links”]中的变量链接)

如果将
ViewBag[“Links”]
替换为
ViewBag.Links
?@David没有区别,问题与使用动态而非强类型的ViewBag有关。他必须将Links变量强制转换为dictionary。虽然在一个位置使用[“Links”]和在另一个位置使用.Links很容易混淆,但是如果将
ViewBag[“Links”]
替换为
ViewBag.Links
?@David没有区别,问题与使用动态而非强类型的ViewBag有关。他必须将Links变量强制转换为.Links,尽管在一个地方使用[“Links”]和在另一个地方使用.Links会让人感到困惑
@foreach(var link in (IDictionary<string, string>)ViewBag["Links"])