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

Ser*_*rım 1 c# variables asp.net-mvc nullable

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

在此输入图像描述

错误:'System.Web.Mbv.Controller.Redirect(string)'的最佳重载方法匹配有一些无效的参数

如何使用可空字符串 RedirectToAction()

Ste*_*ner 6

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

[HttpGet]
public ActionResult Login(string returnUrl)
{
        if (Request.IsAuthenticated)
        {
           if(string.IsNullOrEmpty(returnUrl))
           {
               return RedirectToAction("Index", "Home");
           }
           else
           {
               return RedirectToAction(returnUrl);
           }
        }
        return View();
}
Run Code Online (Sandbox Code Playgroud)

你也可以默认它,所以如果没有传入它将永远不会是空的.

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