2017-06-30 10 views
0

タプル方法の最初の行で、式Regex.Match; Parameter can not be null, Parameter name: inputがエラーを返します。 私は試しましたが、私は問題を解決できませんでした。どうすれば解決できますか?ASP.NET MVC - Regex、Error:パラメータをnullにすることはできません。パラメータ名:入力

public ActionResult Show(string idAndSlug) 
    { 
     var parts = SeperateIdAndSlug(idAndSlug); 
     if (parts == null) 
      return HttpNotFound(); 

     var post = Database.Session.Load<Post>(parts.Item1); 
     if (post == null || post.IsDeleted) 
      return HttpNotFound(); 

     if (!post.Slug.Equals(parts.Item2, StringComparison.CurrentCultureIgnoreCase)) 
      return RedirectToRoutePermanent("Post", new { id = parts.Item1, slug = post.Slug }); 

     return View(new PostsShow 
     { 
      Post = post 
     }); 
    } 

    private Tuple<int, string> SeperateIdAndSlug(string idAndSlug) 
    { 
     var matches = Regex.Match(idAndSlug, @"^(\d+)\-(.*)?$"); 
     if (!matches.Success) 
      return null; 
     var id = int.Parse(matches.Result("$1")); 
     var slug = matches.Result("$2"); 
     return Tuple.Create(id, slug); 
    } 
+0

アクションメソッドで 'idAndSlug'がnullでないあなたは確かにいますか? –

答えて

0

den Show ActionのidAndSlugパラメータがnullでないことを確認します。そうでない場合、nullの場合は動作しません。

0

パラメータがnullでないことを確認してください。

public ActionResult Show(string idAndSlug) 
{ 
    if(idAndSlug == null) 
     throw new ArgumentNullException(nameof(idAndSlug)); 
    //your code 
} 

または

public ActionResult Show(string idAndSlug) 
{ 
    if(idAndSlug == null) 
     idAndSlug = ""; 
    //your code 
} 
関連する問題