gpt4 book ai didi

asp.net - 自定义协议(protocol) MVC 重定向在 Chrome 但不适用于 IE

转载 作者:行者123 更新时间:2023-12-01 02:09:11 24 4
gpt4 key购买 nike

我有一个返回重定向的 ActionResult:

        public ActionResult TeamviewerConnect(int id)
{
snipped ...
return Redirect("impacttv://" + Endpoint.tbl_computerinfo.FirstOrDefault().teamviewerID + "::" + teamviewerPassword);
}

Impacttv://是一个自定义协议(protocol),在 IE 和 Chrome 中都可以作为标准链接正常工作。

这在 Chrome 中运行良好,但在 IE 中出现 404 - 有人知道吗?

最佳答案

见:Error redirecting to a custom URL protocol .

I know this has been a while since you asked, but this blog post describes the redirect behaviour for custom protocols.

The bad news is that redirects don't work for IE.



这表示 IE 无法做到这一点。我最好的建议是为您的重定向创建一个特殊 View ,并使用元重定向或使用 JavaScript 设置 window.location .

另一种选择是将初始调用作为 MVC WebApi AJAX 方法进行,返回 Uri 然后设置位置,以便用户不会离开“起始”页面。我以前使用过最后一种方法,并且可以确认它确实有效。

MVC WebAPI

你需要安装 Mvc WebApi nuget 包,可能还有一些我不记得的其他包:p

电视 Controller .cs
public class TVController: ApiController 
{
[HttpGet]
public string TeamviewerConnectUri(int id)
{
return "impacttv://" + Endpoint.tbl_computerinfo.FirstOrDefault().teamviewerID + "::" + teamviewerPassword;
}
}

JS(使用 jQuery,因为它默认包含在 MVC 项目中)
var apiUrl = '/api/tv/TeamviewerConnectUri';

$.get(apiUrl, {id: 1 })
.then(function(uri)) {
window.location = uri;
// window.open(uri);
});

标准 MVC 方式

电视 Controller .cs
public class TVController: ApiController 
{
[HttpGet]
public ActionResult TeamviewerConnectUri(int id)
{
return Json(new {uri = "impacttv://" + Endpoint.tbl_computerinfo.FirstOrDefault().teamviewerID + "::" + teamviewerPassword}, JsonRequestBehavior.AllowGet);
}
}

JS(使用 jQuery,因为它默认包含在 MVC 项目中)
var apiUrl = '/tv/TeamviewerConnectUri';

$.get(apiUrl, {id: 1 })
.then(function(data)) {
window.location = data.uri;
// window.open(data.uri);
});

关于asp.net - 自定义协议(protocol) MVC 重定向在 Chrome 但不适用于 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30503802/

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