2016-03-22 5 views
1

Ich versuche, alten Code aufzuräumen. Wie kann ich diesen Code prägnanter gestalten? Oder gibt es einen besseren Weg, dies zu tun? Es ist eine alte klassische .asp-Seite mit 2 Domains, die aus den Dateien aufgerufen werden.Concise .asp-Code

<% If (GetDomainType() = "CTH") Then %> 
<meta HTTP-EQUIV="REFRESH" content="7; url=http://www.w.com"> 
<% ElseIf (GetDomainType() = "CA") Then %> 
<meta HTTP-EQUIV="REFRESH" content="7; url=http://www.e.com"> 
<% End If %> 


<!-- #INCLUDE file="mobile_sitefiles.asp"--> 

<% If (GetDomainType() = "WRT") Then %> 
    <title>WRT</title> 
<% ElseIf (GetDomainType() = "EL") Then %> 
    <title>EL</title> 
<% ElseIf (GetDomainType() = "CA") Then %> 
    <title>Curb APeel</title> 
<% Else %> 
    <title>Call</title> 
<% End If %> 

Ich habe versucht:

<% If (GetDomainType() = "CTH") Then 
<meta HTTP-EQUIV="REFRESH" content="7; url=http://www.w.com"> 
ElseIf (GetDomainType() = "CA") Then 
<meta HTTP-EQUIV="REFRESH" content="7; url=http://www.e.com"> 
End If %> 


<!-- #INCLUDE file="mobile_sitefiles.asp"--> 

<% If (GetDomainType() = "WRT") Then 
    <title>WRT</title> 
ElseIf (GetDomainType() = "EL") Then 
    <title>EL</title> 
ElseIf (GetDomainType() = "CA") Then 
    <title>Curb APeel</title> 
Else 
    <title>Call</title> 
End If %> 

Aber dann bricht es nur die Seite.

+0

klassischen ASP-Code ausgeführt wird in Codeblöcke '' <% %> etwas außerhalb dieses zurückgegeben als wörtliche HTML bekommen. Wenn Sie den literalen HTML-Code mit ASP-Codeblöcken mischen, weiß ASP nicht, wie sie verarbeitet werden sollen und erzeugt verschiedene Fehler. Sie werden wahrscheinlich in der Lage sein, diesen Code zu bereinigen, wenn Sie zeigen, was 'GetDomainType()' macht. – Lankymart

+0

Es kann für http://codereview.stackexchange.com/ besser geeignet sein – nha

Antwort

3

Wie Lankymart kommentierte, können Sie nicht HTML mit ASP so mischen. Ich bin mir nicht sicher, was Sie mit "Aufräumen" oder "Prägnant" meinen, aber wenn Sie wirklich, wirklich Ihre Zeit damit verschwenden wollen, Arbeitscode zu überarbeiten, gibt es zwei Dinge, die ich vorschlagen würde.

Eins, ich weiß nicht, was GetDomainType tut, aber egal, es scheint unnötig, es fünf Mal zu nennen. Rufen Sie es stattdessen einmal auf, weisen Sie das Ergebnis einer Variablen zu und verzweigen Sie mit dieser Variablen.

Zwei, es ist in der Regel etwas lesbarer (und ein klitzekleines bisschen effizienter), um die Anzahl der Zeiten zu reduzieren, die Sie zwischen ASP und HTML wechseln.

diese beiden Dinge Kombination, würden Sie so etwas wie

<% 
dim DomainType, url, title 
DomainType = GetDomainType 
If DomainType = "CTH" Then 
    url = "www.w.com" 
ElseIf DomainType = "CA" Then 
    url = "www.e.com" 
Else 
    url = "" 
End If 
Select Case DomainType 
    Case "WRT" title = "WRT" 
    Case "EL" title = "EL" 
    Case "CA" title = "Curb APeel" 
    Case Else title = "Call" 
End Select 
%> 
<%If url <> "" Then%> 
<meta HTTP-EQUIV="REFRESH" content="7; url=http://<%=url%>"> 
<% End If %> 
<!-- #INCLUDE file="mobile_sitefiles.asp"--> 
<title><%=title%></title>