[英]Error: 'Value cannot be null. Parameter name: context' ASP.NET MVC
[英]ASP.NET MVC - Regex, Error: Parameter can not be null. Parameter Name: input
在Tuple方法的第一行中,在表達式Regex.Match
; Parameter can not be null, Parameter name: 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);
}
確保den Show Action中的參數idAndSlug不為null,否則如果為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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.