2016-03-29 17 views
1

Bir ASP.NET MVC uygulamasına sahibim. Uygulamamın uygulamadaki kullanıcının yerini temsil eden ekmek kırıntılarını görüntülemesi gerekiyor. Bunu yapmak için bir çaba, bir asıl düzeni sayfasında aşağıdaki gibi bir şey olmasını istedik:ASP.NET MVC - C# - Jilet Görünümünde Kullanılacak Anahtar Değer Çiftini Tanımla

@{ 
    Layout = "~/Views/Layouts/_Breadcrumbed.cshtml"; 
    ViewBag.Links = new Dictionary<string, string>() 
    { 
     { "Home", "/home" }, 
     { "Parent", "/parent" } 
    }; 
} 
:

@foreach(var link in ViewBag["Links"]) 
{ 
    <div>|</div> 
    <a href="@link.url">@link.text</a> 
} 

Ardından, her görünümde, ben üst kısmında aşağıdaki gibi bir şey olurdu

Cannot apply indexing with [] to an expression of type 'System.Dynamic.DynamicObject' 

Bunu alıyorum neden anlamıyorum: Bu kodu yürütüldüğünde

, aşağıdaki hatayı alıyorum. Bir kırıntı oluşturmak için doğru yolu mu yapıyorum? Değilse, hangi yaklaşım daha iyidir?

+0

'ViewBag [" Links "]' 'ViewBag.Links' ile değiştirirseniz ne olur? – David

+0

@David fark yok, sorun ViewBag ile ilgili, güçlü yazılmamış dinamik kullanarak ilgilidir. Linkler değişkenini Dictionary – Fals

+1

'a çevirmelidir. ["Bağlantılar"] 'ı tek bir yerde kullanmak için kafa karıştırıcı olsa da ve başka bir – n8wrl

cevap

4

ViewBag ["Links"] 'i sözlüğünüze atmanız gerekir, böylece foreach hangi noktanın üzerinde çalışacağını bilir.

@foreach(var link in (IDictionary<string, string>)ViewBag["Links"]) 
İlgili konular