Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC-正则表达式,错误:参数不能为null。参数名称:输入_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# ASP.NET MVC-正则表达式,错误:参数不能为null。参数名称:输入

C# ASP.NET MVC-正则表达式,错误:参数不能为null。参数名称:输入,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,在Tuple方法的第一行中,在表达式Regex.Match中参数不能为空,参数名称:input给出错误。 我试过了,但解决不了这个问题。我如何解决它 public ActionResult Show(string idAndSlug) { var parts = SeperateIdAndSlug(idAndSlug); if (parts == null) return HttpNotFound(); v

在Tuple方法的第一行中,在表达式
Regex.Match
中<代码>参数不能为空,参数名称:input给出错误。 我试过了,但解决不了这个问题。我如何解决它

    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);
    }
公共操作结果显示(字符串idAndSlug)
{
var部分=单独的IDA和SLUG(IDA和SLUG);
if(parts==null)
返回HttpNotFound();
var post=Database.Session.Load(parts.Item1);
if(post==null | | post.IsDeleted)
返回HttpNotFound();
如果(!post.Slug.Equals(parts.Item2,StringComparison.CurrentCultureIgnoreCase))
返回RedirectToRoutePermanent(“Post”,new{id=parts.Item1,slug=Post.slug});
返回视图(新PostsShow)
{
职位=职位
});
}
私有元组分隔idAndSlug(字符串idAndSlug)
{
var matches=Regex.Match(idAndSlug,@“^(\d+)\-(.*)”;
如果(!matches.Success)
返回null;
var id=int.Parse(匹配.Result($1));
var slug=匹配。结果($2”);
返回Tuple.Create(id,slug);
}

确保den Show Action中的参数idAndSlug不为null,否则如果为null,则此操作将不起作用。

只需确保参数不为null即可

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


是否确定操作方法中的
idAndSlug
不为空?
public ActionResult Show(string idAndSlug)
{
    if(idAndSlug == null)
        idAndSlug = "";
    //your code
}