2015-11-15 19 views
16

Sunucu tarafında yeni bir boole değeri tanımladım ve <input> etiketine ayarladım, ancak tarayıcı bunu algılayamadı.Neden <input type = "hidden"> sunucu tarafında bir boole değeri kabul edemiyor?

@{ var isAuthor = false; } 
<input type="hidden" value="@isAuthor" /> 

derleme sonra sonucuydu: Bir string için isAuthor dönüştürmek çalıştığımızda <input type="hidden"></input>

Ama, bu çalışması gerekir:

@{ var isAuthor = false; } 
<input type="hidden" value="@isAuthor.ToString()" /> 

Sonuç: <input type="hidden" value="false"></input>

Neden ? Bir şey mi kaçırdım?

+1

öznitelikleri için

Sen büyük bir tanıtım okuyabilir - Hayır. Onun sadece yol jilet motor çalışır. Bir özniteliğin değeri "null" veya "false" ise, onun işlenmemiş olması - eğer 'name =" @ isAuthor "ifadesini eklediyseniz, –

+0

ya da # html.Hidden()' yi de kullanabilirsiniz. yanlışsa değeri gizlemez. –

cevap

19

Bu, koşullu öznitelikler adı verilen bir Jilet görünüm motoru özelliğidir. Buradaki fikir, senaryonun değeri temel almak istediğiniz ya da istemediğiniz durumlarda basitleştirmektir. Önceden, if bildirimini yazmanız veya bunu işlemek için üçlü operatör kullanmanız gerekiyordu, ancak koşullu özniteliklerle çok daha basit.

Koşullu özniteliklerle, bir özniteliğin değeri null veya false ise, öznitelik oluşturulmaz. Değerin false olmasını istiyorsanız, soruyu yaptığınız gibi dizeye atmanız gerekir. Eğer something_ özledim _Did koşullu Razor bu blog article

+0

Teşekkürler. Bu yardım :) –

İlgili konular