2009-08-19 3 views
0

Ich versuche eine Funktion innerhalb meiner MVC-App zu erstellen, die die URL-Eingabe des Benutzers validiert. In meinem Code unten bekomme ich die "nicht alle Code-Pfade geben einen Wert zurück." Ich brauche Hilfe herauszufinden, warum es nicht gefällt, wenn ich das Ergebnis zurückgebe. Vielen Dank!C# -Funktion, validiere URL innerhalb der mvc-App

public static long InsertUrl(string inputUrl) 
     { 
      long result = 0; 
      if (!string.IsNullOrEmpty(inputUrl)) 
      { 

       using (ShortUrlEntities db = new ShortUrlEntities()) 
       { 

        if (inputUrl.IndexOf(@"://test/") == -1) 
        { 
         inputUrl = "http://test/" + inputUrl; 
        } 

        Regex RgxUrl = new Regex("(([a-zA-Z][0-9a-zA-Z+\\-\\.]*:)?/{0,2}[0-9a-zA-Z;/?:@&=+$\\.\\-_!~*'()%]+)?(#[0-9a-zA-Z;/?:@&=+$\\.\\-_!~*'()%]+)?"); 
        if (RgxUrl.IsMatch(inputUrl)) 
        { 
         ShortURL su = new ShortURL(); 
         su.url = inputUrl; 
         db.AddToShortURLSet(su); 
         db.SaveChanges(); 
         result = su.id; 
        } 

        return result; 
       } 
      } 

     } 
    } 
} 

Antwort

1

Sie haben ein Wenn

if (!string.IsNullOrEmpty(inputUrl)) 

und Ihre Rückkehr innerhalb dieser, wenn ist. Für den Fall, dass die Eingabe-URL null oder leer ist, geben Sie nichts zurück.

Verschieben Sie Ihre Rückkehr Ergebnis; nach draußen, wenn.

+0

zu einfach, ich denke, ich habe den Code zu lange gesucht. Vielen Dank! –

0

Das Problem ist, dass, wenn dies:

if (!string.IsNullOrEmpty(inputUrl)) 

versagt, dann wird kein Ergebnis je zurückgegeben werden. Dies ist für alle Funktionen erforderlich, die einen Wert nicht nur in MVC zurückgeben.

Verwandte Themen