C# 重定向永久不重定向到url

C# 重定向永久不重定向到url,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在编写一个简单的URL缩短器 除了重定向,一切都正常 以下是尝试重定向的代码: public async Task<ActionResult> Click(string segment) { string referer = Request.UrlReferrer != null ? Request.UrlReferrer.ToString() : string.Empty; Stat stat = await this._urlManag

我正在编写一个简单的URL缩短器

除了重定向,一切都正常

以下是尝试重定向的代码:

public async Task<ActionResult> Click(string segment)
    {
        string referer = Request.UrlReferrer != null ? Request.UrlReferrer.ToString() : string.Empty;
        Stat stat = await this._urlManager.Click(segment, referer, Request.UserHostAddress);
        return this.RedirectPermanent(stat.ShortUrl.LongUrl);
    }

谢谢

不要使用
RedirectPermanent()
尝试使用
Redirect()
如下所示。指定的URL必须是绝对URL,否则它将尝试在应用程序中重定向到

您可以检查http://是否存在,并相应地添加它

if(!stat.ShortUrl.LongUrl.Contains("http://"))
  return Redirect("http://" + stat.ShortUrl.LongUrl);
(或)

使用
StartsWith()
string函数

if(!stat.ShortUrl.LongUrl.StartsWith()("http://"))
  return Redirect("http://" + stat.ShortUrl.LongUrl);

不要使用
RedirectPermanent()
尝试使用下面的
Redirect()
。指定的URL必须是绝对URL,否则它将尝试在应用程序中重定向到

您可以检查http://是否存在,并相应地添加它

if(!stat.ShortUrl.LongUrl.Contains("http://"))
  return Redirect("http://" + stat.ShortUrl.LongUrl);
(或)

使用
StartsWith()
string函数

if(!stat.ShortUrl.LongUrl.StartsWith()("http://"))
  return Redirect("http://" + stat.ShortUrl.LongUrl);

LongUrl
返回什么?@DovydasSopa LongUrl返回www.google.com如果LongUrl包含http://,则它可以工作。有没有办法代替检查url是否包含http://?您需要通过包含像http://这样的协议来创建
LongUrl
和绝对url。否则它会认为你在尝试一个相对重定向,差不多就是这样。您可以在添加时将其验证为完整的URL,因此人们首先不能使用“www.google.com”之类的内容。除此之外,您只需更正它。
LongUrl
返回什么?@DovydasSopa LongUrl返回www.google.com如果LongUrl包含http://,它会起作用。有没有办法代替检查url是否包含http://?您需要通过包含像http://这样的协议来创建
LongUrl
和绝对url。否则它会认为你在尝试一个相对重定向,差不多就是这样。您可以在添加时将其验证为完整的URL,因此人们首先不能使用“www.google.com”之类的内容。除此之外,您只需更正它。Not
包含
。使用
StartsWith
。不
包含
。使用
StartsWith