如果请求来自某个IP范围,则将用户重定向到页面

时间:2012-03-08 17:54:31

标签: html asp.net-mvc-3 redirect

在我的Global.asax.cs文件中,我创建了一个Session_Start方法:

protected void Session_Start(object sender, EventArgs e)
{
    //Get the incoming user's IP address.
    var ip = HttpContext.Current.Request.UserHostAddress;

    if (Helpers.RedirectHelpers.IpIsWithinBoliviaRange(ip))
    {
        //Render the bolivia page.
    }
    else
    {
        //Render the regular layout page.
    }
}

假设IpIsWithinBoliviaRange()方法中的代码已编码并正常工作,如何重定向请求以便用户透明地看到我编码的页面?

以下是解决方案的快照,以便您获得更好的图片:

enter image description here

_Layout.cshtml的内容是您所期望的,没有任何异常。

在_BoliviaLayout.cshtml文件中,我做了不同的事情:

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <title>BOLIVIA PAGE</title>
</head>
<body>
    <div>

    </div>
</body>
</html>

如果来自玻利维亚的人访问该网站,我如何呈现此页面?我需要做些什么来调用此&#34;视图&#34;?

的渲染

1 个答案:

答案 0 :(得分:1)

您应该在~/Views/_ViewStart.cshtml

中执行此操作
@{
    Layout = Helpers.RedirectHelpers.IpIsWithinBoliviaRange(Request.UserHostAddress) ? "~/Views/Shared/_BoliviaLayout.cshtml" : "~/Views/Shared/_Layout.cshtml";
}