2011-02-15 14 views

Odpowiedz

15

RTM podpis jest sposób RenderSection:

public HelperResult RenderSection(string name, bool required) 

Istnieje również nadpisanie, które wygląda następująco:

public HelperResult RenderSection(string name) { 
    return RenderSection(name, required: true); 
} 

Należy zauważyć, że ta metoda nie używa już parametrów domyślnych, zamiast tego wybiera jawne przesłonięcia.

Podpis tej metody zmienił się dwukrotnie podczas opracowywania MVC 3, co wyjaśnia, dlaczego widzisz mylące przykłady.

Edit: Wydaje się, że dokumentacja MVC 3 RTM jest niepoprawna i błędnie odwołuje domyślną wartość parametru required.

+0

Spójrz na moją aktualizację, co oznacza "Domyślna jest wartość false" lub czy mam przestarzałą dokumentację? – Omar

+3

Ah, rozumiem, co masz na myśli. Dokumentacja jest nieaktualna. Prześleduję użytkowników MSDN, aby go zaktualizować. – marcind

+0

Czy dokumentacja jest nieaktualna w RTM? Jeśli tak, zaktualizuj odpowiedź, aby móc oznaczyć ją jako odpowiedź. – Omar

1

to musi być prawda. Mówisz, że sekcja jest opcjonalna.

@RenderSection ("SectionName" prawda)

lub @RenderSection ("SectionName" Opcjonalnie prawda)

+0

Czy mam starszą wersję MVC 3? Ponieważ widzę parametr "wymagany", a nie "opcjonalny". Czy moja intellisense jest stara? – Omar

+0

Właściwie oboje macie przestarzałe (tzn. Nie RTM) wersje ASP.NET MVC. – marcind

+1

Mój zły ... jest "wymagany". Odpowiedź brzmi: używamy nazwanych parametrów, a nie parametrów opcjonalnych. Dlatego * masz *, aby określić domyślną wartość drugiego parametru. http://msdn.microsoft.com/en-us/library/dd264739.aspx – rkrauter

Powiązane problemy