gpt4 book ai didi

c# - 使用自定义模式重定向到外部 URL

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:22 24 4
gpt4 key购买 nike

我有 Asp.net MVC4 项目。如果调用指定的操作,我想重定向到外部 url。网址应具有自定义架构,例如不是 http:// 而是 myschema://

我知道要重定向到 google.com 我可以使用 return Redirect("http://google.com"),但是如果我调用 return Redirect 这不起作用("myschema://someaddress.com")

我需要这个自定义模式来在 IOS 设备上启动应用程序,我需要在 MVC 项目中进行重定向,因为我想将链接发送到电子邮件,这个链接将导致我网站上的操作,这个操作将重定向到自定义模式.

直接在邮件中发送带有自定义架构的链接不起作用,因为邮件服务器会从邮件中删除此链接。此外,我不想将用户重定向到前端,他需要在前端单击带有自定义架构的链接。

是否可以或我应该以其他方式进行?

最佳答案

您可以创建自定义的 RedirectResult。如果您深入了解 asp.net mvc RedirectResult 的源代码,您可以很快弄清楚它在做什么。

这是我快速敲出的一个。

public class RedirectResult : ActionResult
{
private string _url;

public RedirectResult(string url)
{
_url = url;
}

public override void ExecuteResult(ControllerContext context)
{
if (context == null)
throw new ArgumentNullException("context");

string url = UrlHelper.GenerateContentUrl(_url, context.HttpContext);
context.Controller.TempData.Keep();
HttpResponseBase response = context.HttpContext.Response;
response.RedirectPermanent(url, endResponse: true);

}
}

在 Fiddler 上现在这样做:

HTTP/1.1 301 Moved Permanently
Date: Tue, 11 Feb 2014 14:03:39 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 3.0
Location: myschema://someaddress.com
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 149
Connection: Close

关于c# - 使用自定义模式重定向到外部 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21161097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com