Czy mogę ją skrócić do jednej linii? Próbowałem różnych sposobów, ale nie mogę tego naprawić.Skróć tę instrukcję if w Razor do jednej linii
@if(SiteMap.CurrentNode.Title == "Contact")
{
@:<div class="contact">
}
Czy mogę ją skrócić do jednej linii? Próbowałem różnych sposobów, ale nie mogę tego naprawić.Skróć tę instrukcję if w Razor do jednej linii
@if(SiteMap.CurrentNode.Title == "Contact")
{
@:<div class="contact">
}
Nie może być jeszcze prostsze rozwiązanie, ale to powinno działać:
@Html.Raw((SiteMap.CurrentNode.Title == "Contact") ? "<div class='contact'>" : "")
Uważaj przy pomocy Html.Raw, nie koduje wyjścia! –
Innym sposobem byłoby:
@if(SiteMap.CurrentNode.Title == "Contact") { <text><div class="contact"></text> }
Ja osobiście uważam, że bardziej czytelny niż operatora potrójnego, ale to jest osobiste
Podoba mi się czytelność tego również, ale jedynym problemem jest to, że po naciśnięciu CTRL K + D w Visual Studio spada do 3 linii :( –
Najkrótszym możliwym sposobem jest:
@(SiteMap.CurrentNode.Title == "Contact" ? "<div class='contact'>" : "")
lub
@(SiteMap.CurrentNode.Title == "Contact" ? @"<div class=""contact"">" : "")
lub nawet krócej, jeśli nie powtórzyć swój kod HTML
<div class="@(SiteMap.CurrentNode.Title == "Contact" ? "contact" : "")">
Nie ma chyba lepszego sposobu, aby to zrobić bez niezrównoważonych tagów. Pokaż więcej kodu. – SLaks
To zdanie, które chcę skrócić. Inny kod jest nieistotny. – Todd
Niepoprawnie. To stwierdzenie "jeśli" jest kiepskim projektem. Biorąc pod uwagę inny kod, możemy pokazać, jak zaprojektować go lepiej. – SLaks