Tôi có thể rút ngắn dòng này thành một dòng không? Tôi đã thử nhiều cách khác nhau nhưng không thể làm cho nó đúng.Rút ngắn câu lệnh if này trong Razor thành một dòng
@if(SiteMap.CurrentNode.Title == "Contact")
{
@:<div class="contact">
}
Tôi có thể rút ngắn dòng này thành một dòng không? Tôi đã thử nhiều cách khác nhau nhưng không thể làm cho nó đúng.Rút ngắn câu lệnh if này trong Razor thành một dòng
@if(SiteMap.CurrentNode.Title == "Contact")
{
@:<div class="contact">
}
Có thể có một giải pháp đơn giản hơn nhưng điều này nên làm việc:
@Html.Raw((SiteMap.CurrentNode.Title == "Contact") ? "<div class='contact'>" : "")
Hãy cẩn thận với Html.Raw, không mã hóa đầu ra! –
Một cách khác sẽ là:
@if(SiteMap.CurrentNode.Title == "Contact") { <text><div class="contact"></text> }
Cá nhân tôi thấy nó dễ đọc hơn so các nhà điều hành ternary, nhưng đây là cá nhân
Tôi thích khả năng đọc của điều này quá nhưng vấn đề duy nhất là khi bạn nhấn CTRL K + D trong Visual Studio nó giảm xuống 3 dòng :( –
Cách ngắn nhất có thể thực hiện là:
@(SiteMap.CurrentNode.Title == "Contact" ? "<div class='contact'>" : "")
hoặc
@(SiteMap.CurrentNode.Title == "Contact" ? @"<div class=""contact"">" : "")
hoặc thậm chí ngắn hơn nếu bạn không lặp lại mã html của bạn
<div class="@(SiteMap.CurrentNode.Title == "Contact" ? "contact" : "")">
Có lẽ là một cách tốt hơn để làm điều đó mà không cần thẻ mất cân bằng. Vui lòng hiển thị thêm mã. – SLaks
Câu lệnh if tôi muốn rút gọn. Mã khác không liên quan. – Todd
Sai. Câu lệnh 'if' này là thiết kế kém. Với mã khác, chúng tôi có thể cho thấy cách thiết kế nó tốt hơn. – SLaks