此处不允许相对虚拟路径

时间:2016-07-07 00:52:42

标签: asp.net asp.net-mvc asp.net-mvc-5

在我的控制器操作中,我有以下代码:

...more code

if (...)
{
    // create a site user
    await this.CreateUserAndSignHimInAsync(UserType.SiteUser, model);

    var landingPageUrl = IdentityManager.GetLandingPageUrl(model.Email);

    return Redirect(landingPageUrl);
}

...more code

landingPageUrl是一个看起来像这样的网址:“〜/ Journal / Search”。

return Redirect行,我得到一个例外情况:

  

此处不允许使用相对虚拟路径'~Journal / Search'。

1 个答案:

答案 0 :(得分:1)

我的代码存在的问题是,我尝试重定向到的网址,如异常消息所报告的,是一个格式错误的 ~Journal / Search ,而不是〜/ JournalSearch

另外,我发现如果你有一个ASP.NET虚拟相对URL,比如"〜/ Journal / Search"并且你想把它变成一个绝对的Url,你可以像这样调用UrlHelper.GenerateContentUrl静态方法:

var url= UrlHelper.GenerateContentUrl("~/Journal/Search", 
         Request.RequestContext.HttpContext);