2010-01-11 12 views

Antwort

2

Ich bin mir nicht sicher, ob das, was Sie gesehen haben, aber here ist ein Blog, das es erwähnt. Siehe Punkt 11.

+0

Ja, das ist der, an den ich mich erinnere! Die Links in den anderen Antworten sind auch gut, also danke! – JoelFan

0

Ich fühle, dass es gut ist. Es ermöglicht dem Blick, die Präsentation zu kontrollieren.

0

Ich vermute, dass der Punkt war ein Versuch, Spaghetti-Code zu vermeiden, anstatt die Verwendung von "If" s, hier ist ein Link zu einem Rob Conery Blog darüber, er tatsächlich erwähnen, mit Helfern anstelle von Ifs so dies Vielleicht haben Sie gesehen, ASP.NET MVC: Avoiding Tag Soup

9

Ich denke, was Sie sich beziehen ein post by Rob Conery ist, wo er eine Regel erwähnt er verwendet:

Wenn ein if es, ein Helfer

So Ihre Frage zu beantworten machen, Die Idee dahinter ist, dass Sie, wenn Sie in Ihrer View if verwenden müssen, eine Helper-Extension-Methode hinzufügen sollten, um stattdessen diesen Teil Ihrer View zu rendern.

0

Ist das das Problem, auf das Sie sich beziehen?

Bindungsausdrücke können nicht in Anweisungsblock <%% verwendet werden>, wie Aussagen nicht in einem verbindlichen Ausdruck Block <% #%>

verwendet werden - bruce (sqlwork.com)

"Jason" <> schrieb in Nachricht news: 23C11F83-A2AA-406D-BDEC -...

Was mit der folgenden if-Anweisung in meiner aspx Seite falsch ist?

"T" Dann%>

Ich bekomme Fehler, der sagt: BC30201: Ausdruck erwartet.

Bruce Barker

10

Im Grunde, was es bedeutet, dass Sie nicht riesig haben sollten, wenn Aussagen in Ihren Ansichten, Ihre Controller und Viewmodels sollten die Logik zu handhaben können. Beispiel:

<h2 class="title"> 
    <% if (ViewData["category"] == null { %> 
     All Products 
    <% } else { % > 
     <%= ViewData["category"] %> 
    <% } %> 
</h2> 

Sollten sein:

<h2 class="title> 
    <%= Model.Title %> 
</h2> 

Wenn Ihr Controller und Viewmodel kann die Logik nicht umgehen, sollten Sie Html-Helfer für kompliziertere Logik schreiben (so dass es wiederverwendbar und besser lesbar).

<h2 class="title> 
    <%= Html.GetPageTitle(Model.Category) %> 
</h2> 
2

Wie ich denke, der beste Ansatz für diese versuchen, ist Ihr, wenn die Bedingung in der Steuerung zu handhaben und die spezifische Ansicht für gewünschte Ergebnis übergeben oder den Namen der Ansicht in einer Variable übergeben zu machen.

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; 
    } 
} 

Nun, Martin Antwort ist auch von Best Practices.

Verwandte Themen