Razor <text>
etiketinin biçimlendirme kurallarına uymayı reddettiğini fark ettim. Bir cshtml
belge biçimlendirme Örneğin, aşağıdaki gibi bir kod ile sonuna kadar:<text> içeriğinin düzeltilmesi
@MyHelper.MyMethod(@<div>
<p>Hello world</p>
</div>)
@MyHelper.MyMethod(@<text>
<p>Hello world</p>
</text>)
Not <text>
blok yerde aynı şeyi yapacağız. Böyle <div>
olarak
istemci HTML etiketleri (ve içerikleri) Ancak ne olursa olsun ben (veya kaldırmak) eklemek Etiket Özgü Seçenekler <text>
eleman nerede, ben belirttiğiniz biçimlendirme stili izleyin. .., hiçbir etkisi yoktur. İstenen sonuç, <text>
öğe içeriğinin, önceki örnekte <div>
öğe içeriği gibi biçimlendirilmiş olması olabilir.
diğer blok düzeyi istemci HTML öğelerinin bu kadar gördüğüm
(vb<div>
, <section>
) <text>
unsurları aynı biçimlendirme stili uygulamak için herhangi bir hile veya alternatif çözüm var mı here ve here gibi Razor diliyle ilgili diğer biçimlendirme sorunları, bu durum emsalsiz değildir ve çözüm bulunmayabilir. Her iki durumda da, belki birisi bir düzeltme ile karşılaştı.
O
VS 2010
Ek bina, bir Jilet 2.X web sitesi var (ben bu yorgun büyüdüm.)
Belki de bu 2012 yılında sorun çözüldü; Bilmiyorum, güncellemedim. Ancak, <text>
blokları, @
- düzeltilmiş bloklar ve daha fazlası iyi biçimlendirilmez.
Başka bir örnek, bu kez @
-prefixed blokları (yapılar ve)
@foreach (var foo in bar) {
<div>@(foo.A)</div>
<div>@(foo.B)</div>
@foreach (var qux in foo.C) {
<div>@(qux.D)</div>
<div>@(qux.E)</div>
}
}
doğru, daha fazla ya da daha az iyi görünüyor? Evet, maalesef aslında sözdizimsel olarak geçersiz. foreach
numaralı iç @
-prefix'in izin verilmez, bir dış bloğun kesintisiz kapsamı içinde (dış foreach
).
Çözüm? @
'un içini foreach
'dan çıkarın. Biçimlendiğimde ne olur?
@foreach (var foo in bar) {
<div>@(foo.A)</div>
<div>@(foo.B)</div>
foreach (var qux in foo.C) {
<div>@(qux.D)</div>
<div>@(qux.E)</div>
}
}
Harika, iç girintiyi kaybettiniz. Kaka.
Tamam, bu <text>
bloklarına ne dersiniz, bir şey için faydalı olmalılar, değil mi?Tabii, bir <text>
blokta dış foreach
bloğun içeriğini sarın. Şimdi, bildiğim kadarıyla Jilet söz konusu olduğunda, iç foreach
-prefixing @
sözdizimsel geçerlidir.
@foreach (var foo in bar) {
<text>
<div>@(foo.A)</div>
<div>@(foo.B)</div>
@foreach (var qux in foo.C) {
<div>@(qux.D)</div>
<div>@(qux.E)</div>
}
</text>
}
Tamam, ince; Ancak, bu çalışırken orijinal sorumun konusunu örneklendirir. Şimdi <text>
blok içeriği çukurlaşma uymamaktadır. Neden sadece olamaz:
@foreach (var foo in bar) {
<text>
<div>@(foo.A)</div>
<div>@(foo.B)</div>
@foreach (var qux in foo.C) {
<div>@(qux.D)</div>
<div>@(qux.E)</div>
}
</text>
}
Veya <text>
blok vida ve diğerleri kapsamında @
-prefixed yapıları izin:
@foreach (var foo in bar) {
<div>@(foo.A)</div>
<div>@(foo.B)</div>
@foreach (var qux in foo.C) {
<div>@(qux.D)</div>
<div>@(qux.E)</div>
}
}
tl;
drBana anal deyin, bana deli de. Önemli değil; anlatabildiğim kadarıyla, bu ürün formatlama ayarlarımdan bağımsız olarak doğru çalışmıyor.
kimse anlatıldığı gibi VS davranmaya 2010 Razor biçimlendirme zorlamak için nasıl biliyor mu? (veya benim OKB için bu sadece bazı boru-rüya?)
Bu sadece üzücüdür. Bunun çözümü ve hemen hemen her Razor biçimlendirme sorunu: ** Belgenizi biçimlendirmeyin **. Açıkçası bu saçmalık. Bunun gibi konular ve [bu] (http://stackoverflow.com/questions/13829012/the-system-web-razor-api-documentation) sadece "karşılaşılmakta olan" bir sürü son teslim tarihi olduğunu varsaymamı sağladı. . – Dan