如何获得可为空的字符串值?

How can get nullable string value?

[HttpGet]
public ActionResult Login(string? returnUrl)
{
    if (Request.IsAuthenticated)
    {
        if(returnUrl.HasValue)
           return RedirectToAction("Index", "Home");
        else
           return RedirectToAction(returnUrl);
    }
    return View();
}

Error: The best overloaded method match for 'System.Web.Mbv.Controller.Redirect(string)' has some invalid arguments

如何为 RedirectToAction()

使用可空字符串

字符串已经可以为空,但您可以使用 string.IsNullOrEmpty.

检查是否为空
[HttpGet]
public ActionResult Login(string returnUrl)
{
        if (Request.IsAuthenticated)
        {
           if(string.IsNullOrEmpty(returnUrl))
           {
               return RedirectToAction("Index", "Home");
           }
           else
           {
               return RedirectToAction(returnUrl);
           }
        }
        return View();
}

你也可以默认它,这样如果它没有传入它就永远不会为空。

[HttpGet]
    public ActionResult Login(string returnUrl = "www.yourDomain.com/login")
    {
            if (Request.IsAuthenticated)
            {
               return RedirectToAction(returnUrl);
            }
            return View();
    }