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

时间:2015-11-25 11:46:45

标签: c# asp.net-mvc variables nullable

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

enter image description here

  

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

如何为RedirectToAction()

使用可为空的字符串

1 个答案:

答案 0 :(得分: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();
}

你也可以默认它,所以如果没有传递它就永远不会是空的。

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