重定向到另一个html页面

时间:2018-01-18 16:38:48

标签: c# angularjs

首先检查浏览器版本后,有没有办法将我的应用程序重定向到网页?

我正在使用C#来运行我的角度应用程序,默认情况下会加载index.html,但有没有办法控制它?

例如:如果我的浏览器是IE加载错误的浏览器,否则加载index.html(默认值为)

请注意,我不想重定向我的页面,因为我想保留orignal url:ex localhost / api / search = text。如果我进行重定向,它将覆盖我的网址。所以我只想加载html内容

我在服务器端使用C#和Visual Studio

3 个答案:

答案 0 :(得分:0)

您的应用的第一页必须加载,因为它需要能够确定浏览器规格。只有这样,你才可以根据这些知识重定向到另一个页面。

答案 1 :(得分:0)

我从未使用Angular JS和Angular与C#,但从个人知识我知道你可以"重定向"在不改变网址的情况下,使用 vanilla javascript 中的XML请求(也许您可以将其置于某处):

var request = new XMLHttpRequest();

request.addEventListener("load", function(evt){
    document.write(evt.target.response);
}, false);

request.open('GET', 'a.html', true),
request.send();

现在这样做很简单,我们设置变量请求,这是一个XMLHttpRequest对象,然后我们为它加载时设置一个事件监听器,加载后我们用目标代码替换页面中的代码,然后我们设置网址并发送请求。

我只是将其用于测试,因此可能存在我不知道的问题,但它会导入html代码。

答案 2 :(得分:0)

在C#中,您可以使用Request.Browser执行以下操作:

if(Request.Browser.Browser.IndexOf("InternetExplorer")){
   return View("wrongBrowser");
}

您必须使用IndexOf,因为大多数(如果不是所有)浏览器也会在其名称中返回其版本。

以下是可能的浏览器字符串列表:

  • IE&lt; = 11:InternetExplorer <numeric version>
  • 边缘:Edge <version>
  • Safari:Safari <version>
  • Chrome:Chrome <version>
  • Opera:Chrome <version>

还有更多,其中大多数将来自Chrome。因为你指定了上面列出的IE11,所以我不会详细介绍。对于其他不太受欢迎的浏览器,上述方法并不可靠,因此请牢记这一点。