2017-08-30 72 views
0

使用Custom URL Protocol我为自己设置了一个名为更新器的url,这意味着当我调用下面的控制器时;Asp.net(核心) - 导航到多个网址

第一个例子:

public IActionResult Launch() 
{ 
    return Redirect("Updater:"); 
} 

它运行在我的机器上的.exe文件。不过,我想在之后将我的网页重定向到主页。应该看起来像这样;

第二个例子:

public IActionResult Launch() 
{ 
    Redirect("Updater:"); // launch my application 

    return View("Index"); // and return to homepage 
} 

或在我看来是这样的;

第三个例子:

<a href1="@($"ETravelerUpdater:")" href2="@Url.Action("Index", "Home")"> 
    <img data-src="holder.js/100px280/thumb?theme=vine"> 
</a> 

是否有一个简单的方法来做到这一点?

编辑:在第二个和第三个例子中显示的代码不起作用,它只是在那里给出一个想法,我试图完成。

+0

为什么不在你的'Launch'动作中加入'Update:'代码? –

+0

@DavidLee哦,我明白你的意思,如果我按照你的建议去做,代码将在服务器上运行。但是,如果安装.exe,目前代码将在客户端计算机上运行。 – 0014

+1

不知道我是否了解您的案例,但您可以做的是在您的应用程序或您的主页上重定向客户端到您的网址。你可以用javascript或jquery来做到这一点。例如,您可以在加载索引页时运行此操作。 'window.location.href =“MyUpdaterLink.com”;' –

回答

1

没有看到Updater:行动我已经做了一些关于它如何运作的假设。无论哪种方式,这应该给你一个关于如何处理来自客户端的JavaScript多重定向的想法。

<script> 
    function myFunction() { 
     window.open('MyUpdaterLink.com', '_blank'); // opens in new tab 
     window.location.href = "MyIndexLink.com"; // opens in current window 
    } 
</script> 

<button onclick="myFunction()"> 
    <img data-src="holder.js/100px280/thumb?theme=vine"> 
</button> 
0

附加David Lee's answer我想提供一个答案,将允许用户导航到多个URL因此使用javascript同一标签上;

@model LaunchViewModel 
<a href="javascript:Launch('ETravelerUpdater:|@Model.EmployeeName|SalesQuotes|@Model.AccessLevel')"> 
    <img data-src="holder.js/100px280/thumb?theme=sky&text=Sales%20Quotes" alt="Card image cap"> 
</a> 

<script> 
    async function Launch(url) { 
     window.location.href = url; 
     await sleep(1000); 
     window.location.href = "./"; 
    } 

    function sleep(ms) { 
     return new Promise(resolve => setTimeout(resolve, ms)); 
    } 
</script> 

点击锚标记后,用户将导航到URL参数,并等待一秒钟后,用户会转到在这种情况下,第二url主页。