如何按照指示进行页面重定向

时间:2019-01-04 15:52:05

标签: c# asp.net-core razor-pages

我对Web开发非常陌生,我一直在努力理解为什么我的重定向代码实际上并未重定向到指定页面。该代码肯定是在执行重定向行,因为我在本地主机上运行时可以看到它逐步执行。

因为我是Web开发的新手,所以我可能没有以最佳方式来解决这个问题,但是我创建了一个类,用于通过对ipstack.com的api调用从IP地址获取国家/地区。这将IP地址作为输入,我是通过ipify.org获得的。

正如我说的那样,这可能不是最佳方法,但确实有效。我能够愉快地将IP和国家/地区打印到页面上。

最后一点,根据国家/地区重定向,让我很沮丧。 这是我在index.cshtml.cs

中拥有的代码
public class IndexModel : PageModel
{
  public void OnGet()
  {
    string UserCountry = null; Microsoft.AspNetCore.Mvc.ActionResult x;

    //This is my class that gets the country from the IP
    UserCountry = redirect.getCountry(); 
    if (UserCountry == "MX"
    {  x = Redirect("http://www.example.com/mx"); }
    else
    {  x = Redirect("http://www.example.com/us"); }
  }
}

如果我在网上稍稍中断一下,代码似乎可以编译愉快: 如果(UserCountry ... 我可以看到UserCountry确实设置为正确的国家/地区(我已经使用MX和美国IP地址进行了测试),并且两个代码路径都可以执行,但是重定向永远不会发生。

如果我检查x,则可以在x的url属性中看到正确的url,但我认为这是来自输入参数的。有一个x的布尔属性,称为永久性,为false。我想知道这是否需要实现,但是我看不到如何设置(我尝试将true作为第二个参数传递,但是VS抱怨了。)

我尝试了此处建议的许多选项,但我无法使用它们。大多数人似乎在我的定义中产生语法错误,我知道这可能是由于我没有正确配置它而做错了一个事实,但是由于我无法确定应该如何配置,所以我的结果是我无法正常工作。

0 个答案:

没有答案