Pamiętam, że widziałem bloga (lub coś takiego), który powiedział, że nie powinieneś używać <%, jeśli ...%> w plikach .aspx w ASP.NET MVC, ale nie pamiętam, co powiedział, że jest alternatywa. Czy ktoś może pamiętać o tym i wskazać mi to?"jeśli" za szkodliwe w plikach ASP.NET MVC View (.aspx)?
Odpowiedz
Nie jestem pewien, czy to jest to, co widziałeś, ale here to blog, który wspomina o tym. Zobacz punkt # 11.
Czuję, że jest w porządku. Pozwala to poglądowi kontrolować jego prezentację.
Podejrzewam, że chodziło o próbę uniknięcia kodu spaghetti, a nie ograniczanie użycia "jeśli", tutaj jest link do bloga Rob Conery o tym, on rzeczywiście wspomina o użyciu pomocników zamiast Ifs, więc to może być to, co widziałeś ASP.NET MVC: Avoiding Tag Soup
myślę, co masz na myśli to post by Rob Conery, gdzie wspomina regułę on zastosowań:
Jeśli istnieje
if
, upewnij pomocnika
Tak, aby odpowiedzieć na pytanie, chodzi o to, że jeśli chcesz, aby w widoku był używany obiekt if
, powinieneś rozważyć dodanie metody rozszerzenia pomocnika w celu renderowania tej części widoku.
Czy to dotyczy problemu?
wyrażenia wiązania nie mogą być używane w bloku oświadczenie <%%>, tak jak oświadczenia nie mogą być używane w wiązania blokowego wyrażenie <% #%>
- Bruce (sqlwork.com)
"Jason" <> napisał w wiadomości wiadomości: 23C11F83-A2AA-406D-BDEC -...
Co jest nie tak z poniższej instrukcji if w moją stronę aspx?
"T" Następnie%>Pojawia się komunikat o błędzie: BC30201: Oczekiwano użycia wyrażenia.
Bruce Barker
Zasadniczo, co to znaczy, że nie powinno się mieć ogromny if w widokach, kontrolerów i ViewModels powinien być w stanie obsłużyć logiki. Przykład:
<h2 class="title">
<% if (ViewData["category"] == null { %>
All Products
<% } else { % >
<%= ViewData["category"] %>
<% } %>
</h2>
Powinno być:
<h2 class="title>
<%= Model.Title %>
</h2>
Jeśli kontrolery i ViewModels nie mogą poradzić sobie z logiką, należy napisać html pomocników do bardziej skomplikowanej logiki (co czyni go bardziej czytelnym i wielokrotnego użytku).
<h2 class="title>
<%= Html.GetPageTitle(Model.Category) %>
</h2>
Jak myślę, że najlepszym sposobem na to jest próbować obsługiwać jeśli warunek kontroler i przekazać szczególne widzenia wymaganego wyniku lub przekazać nazwę widoku w zmiennej do renderowania.
public class HomeController :Controller
{
public ActionResult Category(string? category)
{
View viewToReturn;
if (category == null)
viewToReturn = View("CategoryList", repo.GetAllCategory); /// it is a View
else
viewToReturn = View("Category", repo.GetCategory(category)); /// it is a View
return viewToReturn;
}
}
Cóż, odpowiedź Martina również pochodzi z najlepszych praktyk.
- 1. MVC 3 ASPX VS RAZOR View Engine
- 2. Konwertuj MVC 2 ASPX na MVC 4 Razor view engine
- 3. Master-Detail View ASP.NET MVC
- 4. ASP.NET Core MVC View Components
- 5. ASP.net Web Forms, otrzymujesz błędy aspx/view podczas kompilacji?
- 6. org.hibernate.Session.clear() za szkodliwe?
- 7. Dostęp do ustawień aplikacji z ASP.Net MVC View
- 8. PKG_CHECK_MODULES za szkodliwe?
- 9. Wiązanie DropDownList w MVC View
- 10. Czy można używać instrukcji "using" w widokach aspx? (ASP.NET MVC)
- 11. ASP.NET MVC - Ustaw Master View zgodnie ze sterownikiem
- 12. Asp.NET MVC 2 Preview 2: Problem obszaru nazw obszaru Aspx
- 13. Ustaw atrybut klasy na Html.EditorFor w ASP.NET MVC Razor View
- 14. Najlepszy sposób renderowania System.Drawing.Image w ASP.NET MVC 3 View
- 15. Eclipse project.properties ścieżki backslash za szkodliwe
- 16. Ustawianie punktów przerwania w widokach ASPX MVC
- 17. Nie można użyć Nuget PagedList ASP.NET MVC# View
- 18. ASP.NET MVC View Code Formatowanie - szelki <% } %>
- 19. Jak włączyć powiązanie danych w KnockoutJS za pomocą mechanizmu ASP.NET MVC 3 "Razor" View Engine?
- 20. Linq nie działa w MVC View
- 21. Powiel metodę "ProcessRequest" w ASPX
- 22. asp.net przekazać zmienną z kodu do .aspx
- 23. LinkButton w ASP.NET MVC
- 24. ASP.NET MVC - Script Kombajny
- 25. ASP.NET MVC RememberMe
- 26. ASP.NET MVC w katalogu wirtualnego
- 27. Asp.NET MVC AjaxOptions OnSuccess wystrzeliwuje ... za wcześnie?
- 28. ASP.NET Obraz zwrotny z łącza .aspx
- 29. asp.net mvc viewmodels. Ile logiki (jeśli w ogóle) powinno zawierać
- 30. Zarządzanie użytkownikami za pomocą ASP.NET MVC 4
Tak, właśnie to pamiętam! Linki w innych odpowiedziach też są dobre, więc dziękuję! – JoelFan