2010-01-11 8 views

Odpowiedz

2

Nie jestem pewien, czy to jest to, co widziałeś, ale here to blog, który wspomina o tym. Zobacz punkt # 11.

+0

Tak, właśnie to pamiętam! Linki w innych odpowiedziach też są dobre, więc dziękuję! – JoelFan

0

Czuję, że jest w porządku. Pozwala to poglądowi kontrolować jego prezentację.

0

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

9

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.

0

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

10

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> 
2

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.

Powiązane problemy