2016-04-08 18 views
2

Böyle _layout.cshtml sayfada tanımlı değişken vardır:Hisse jilet yapılan değişken ASP.Net MVC

@{ 
var username = "myusername"; 
var datetime = "mydatetime"; 
} 

ama bu değişkenler sadece _Layout sayfasında kullanılabilir.

Index.cshtml sayfasında @username kullanmayı denerim, "Geçerli kullanıcı adı 'kullanıcı adı' geçerli bağlamda yok".

nasıl o genel değişken için farklı sayfalarda bunları kullanmak için yapabilir?

Teşekkürler.

+0

' var username = "myusername" '; datetime'' ile aynı '.. sonra Gözlerinde farklı * Index.cshtml * Tüm Mecbur –

+0

'da istediğiniz yere @ ViewBag.username' yazabilirsiniz. Bu bana bir XY Sorunu (http://meta.stackexchange.com/a/233676/163532) gibi geliyor. Gerçek şu ki * aslında * elde etmeye çalışıyorsunuz, çünkü daha olası değil, daha iyi bir yol var. –

cevap

3

Genel değişkenler için ViewBag kullanmalısınız.

@{ 
    ViewBag.username = "myusername"; 
    ViewBag.datetime = "mydatetime"; 
} 

Değerleri bu sözdizimini kullanarak başka bir yerde oluşturun. `ViewBag.username = "myusername" için * _Layout * değişimde

@ViewBag.username 
@ViewBag.datetime 
+1

Bu çalışma sırasında, bir görünümde bir düzende bazı değişken kümelerine güvenmek son derece kötü bir fikirdir. Tüm düzenleri, birbirleriyle değiştirilebilir olması gerektiğidir. –

+0

Siz haklısınız. Değerleri ayarlamak için gerçekten bir ViewModel kullanıyor olmalıydı, ama onun acil sorusunu yanıtlıyordum. – DunningKrugerEffect