2009-08-19 9 views
0

私は自分のmvcアプリケーション内でユーザーのURL入力を検証する関数を構築しようとしています。私のコードでは、「すべてのコードパスが値を返すわけではありません」と表示されます。私は結果を返すときに好きではない理由を理解するのに助けが必要です。ありがとう!c#function、mvcアプリケーション内でURLを検証

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

     } 
    } 
} 

答えて

1

あなたがもし

if (!string.IsNullOrEmpty(inputUrl)) 

とあなたのリターンを持っているがあれば、その内部にあります。 inputUrlがnullまたは空の場合、何も返されません。

結果を移動します。 ifの外側に。

if (!string.IsNullOrEmpty(inputUrl)) 

に失敗した何の結果は、これまで返されません。

+0

あまりにも簡単に、私はあまりにも長いコードを見ていたと思います。ありがとう! –

0

問題は、この場合のことです。これは、MVCだけでなく値を返すすべての関数に必要です。