【问题标题】:The relative virtual path is not allowed here这里不允许使用相对虚拟路径
【发布时间】:2016-07-07 00:52:41
【问题描述】:

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

...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”。

【问题讨论】:

  • 这是 MVC Controller.Redirect 方法返回一个 RedirectResult。我想我快要找到解决问题的方法了。

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


【解决方案1】:

我的代码的问题在于,正如异常消息所报告的那样,我试图重定向到的 URL 是格式错误的 ~Journal/Search 而不是 ~/期刊搜索

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 2016-05-01
    • 2016-01-31
    相关资源
    最近更新 更多