2008-09-25 5 views

Antwort

12

Ja. Trennen Sie sie in Ihrer Deklaration durch Semikolons.

+0

Wie unterscheidet sie sich durch Semikolon als Komma, Punkt oder irgendein anderes Sonderzeichen? – ozgur

+1

Downvoted, weil die Verwendung eines Semikolons keine Unterstützung für mehrere Parameter bietet. Wenn Sie das möchten, sollten Sie es selbst implementieren. – Richard

+0

Vereinbart mit @Richard; Dies gibt _not_ keine automatische Unterstützung. – PMah

4

Wenn Sie GetVaryByCustomString() in der Datei Global.asax.cs überschreiben, können Sie eine durch Semikolon getrennte Liste von Werten übergeben, die Sie anschließend analysieren müssen.

Es gibt einen integrierten Wert (Browser), der verwendet wird, wenn das angegebene Attribut nicht existiert.

+3

Technisch gesehen kann man jedoch, wenn man 'GetVaryByCustomString' überschreibt, die Zollliste nicht in irgendeinem Format passieren, da man ohnehin eine eigene Analyse durchführen muss? Oder wird es für einen Aufruf von "base.GetVaryByCustomString" in der überschriebenen Implementierung von Bedeutung sein? – bzlm

+0

@bzlm 'base.GetVaryByCustomString' implementiert keine String-Splitting-Funktionen und wird nur etwas tun, wenn' browser' als Wert übergeben wird. Dies bedeutet, dass Sie ein beliebiges Zeichen als Trennzeichen auswählen können. – Richard

+0

Technisch spielt das Trennzeichen keine Rolle. Microsoft empfiehlt jedoch, ein Semikolon in ihrer Dokumentation zu verwenden. Außerdem wird Semikolon automatisch für VaryByParam unterstützt und normalerweise ist es ratsam, bei einer Konvention zu bleiben, wenn eine definiert ist. –

0

Sie können mehrere Parameter verwenden, indem Sie sie durch ein Semikolon trennen, aber Sie müssen die Logik implementieren, sie selbst zu splitten. Dies bedeutet, dass Sie jedes Zeichen als Trennzeichen verwenden können, da Sie es selbst analysieren müssen.

Sie überschreiben wahrscheinlich GetVaryByCustomString(HttpContext context, string custom) in Ihrem global.asax. Der custom Parameter wird alles enthalten, die Sie VaryByCustom Pass mit, wie diese

<%@ OutputCache Duration="86400" VaryByParam="none" VaryByCustom="custom1;custom2" %> 

Zusätzliche Anmerkung: base.GetVaryByCustomString keine String-Splitting-Funktionen implementieren und wird nur etwas tun, wenn browser als Wert übergeben wird. Andernfalls wird null zurückgegeben.